具有约束布局的九个补丁
Nine Patch With Constraint Layout
是否可以使用带约束布局的 9-patch drawable?我正在尝试渲染一个可编辑的分数。两个 edittext 由九个 patch drawable 分隔,基本上是一条可以水平扩展的黑线:
<android.support.constraint.ConstraintLayout
android:id="@+id/constraint_content"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<EditText
android:id="@+id/numerator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:hint="@string/x"
android:inputType="number"
android:textColorHint="@android:color/transparent"
android:textSize="24sp"
mr:layout_constraintBottom_toTopOf="@id/denominator" />
<EditText
android:id="@+id/denominator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:hint="@string/x"
android:inputType="number"
android:textColorHint="@android:color/transparent"
android:textSize="24sp"
mr:layout_constraintBottom_toBottomOf="@id/numerator" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/fraction"
mr:layout_constraintEnd_toEndOf="@id/denominator"
mr:layout_constraintStart_toStartOf="@string/numerator" />
</android.support.constraint.ConstraintLayout>
直线呈现正确,但当分子或分母增加长度时,它不会自行拉伸。可绘制对象在 "classic" 布局 (LinearLayout) 下工作正常。
Link 对于 9 patch drawable
编辑:添加:
mr:layout_constraintWidth_default="percent"
mr:layout_constraintWidth_percent="1"
视图布局似乎可行,现在我需要将内容居中...
用于显示 nine-patch 可绘制对象的 View
约束之一存在错误:
mr:layout_constraintStart_toStartOf="@string/numerator"
您试图将 View
的末尾限制为字符串资源,这实际上不会引发任何错误。
由于您希望此 View
与分母或分母(以较长者为准)一起展开,并且您的 parent ConstraintLayout
已将 android:layout_width
设置为 wrap_content
您可以像这样将 View
的水平约束限制为 parent
:
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/fraction"
mr:layout_constraintBottom_toTopOf="@id/denominator"
mr:layout_constraintEnd_toEndOf="parent"
mr:layout_constraintStart_toStartOf="parent"
mr:layout_constraintTop_toBottomOf="@id/numerator" />
结果:
是否可以使用带约束布局的 9-patch drawable?我正在尝试渲染一个可编辑的分数。两个 edittext 由九个 patch drawable 分隔,基本上是一条可以水平扩展的黑线:
<android.support.constraint.ConstraintLayout
android:id="@+id/constraint_content"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<EditText
android:id="@+id/numerator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:hint="@string/x"
android:inputType="number"
android:textColorHint="@android:color/transparent"
android:textSize="24sp"
mr:layout_constraintBottom_toTopOf="@id/denominator" />
<EditText
android:id="@+id/denominator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:hint="@string/x"
android:inputType="number"
android:textColorHint="@android:color/transparent"
android:textSize="24sp"
mr:layout_constraintBottom_toBottomOf="@id/numerator" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/fraction"
mr:layout_constraintEnd_toEndOf="@id/denominator"
mr:layout_constraintStart_toStartOf="@string/numerator" />
</android.support.constraint.ConstraintLayout>
直线呈现正确,但当分子或分母增加长度时,它不会自行拉伸。可绘制对象在 "classic" 布局 (LinearLayout) 下工作正常。
Link 对于 9 patch drawable
编辑:添加:
mr:layout_constraintWidth_default="percent"
mr:layout_constraintWidth_percent="1"
视图布局似乎可行,现在我需要将内容居中...
用于显示 nine-patch 可绘制对象的 View
约束之一存在错误:
mr:layout_constraintStart_toStartOf="@string/numerator"
您试图将 View
的末尾限制为字符串资源,这实际上不会引发任何错误。
由于您希望此 View
与分母或分母(以较长者为准)一起展开,并且您的 parent ConstraintLayout
已将 android:layout_width
设置为 wrap_content
您可以像这样将 View
的水平约束限制为 parent
:
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/fraction"
mr:layout_constraintBottom_toTopOf="@id/denominator"
mr:layout_constraintEnd_toEndOf="parent"
mr:layout_constraintStart_toStartOf="parent"
mr:layout_constraintTop_toBottomOf="@id/numerator" />
结果: