约束布局的九个补丁

时间:2018-05-28 10:30:35

标签: android android-constraintlayout nine-patch

是否可以在约束布局中使用9-patch drawable?我正在尝试渲染一个可编辑的分数。两个edittext由九个补丁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>

线条被正确渲染,但当分子或分母增加长度时,它不会伸展自己。 drawable工作正常,具有“经典”布局(LinearLayout)。

Starting point

Expanded

9 patch drawable

的链接

编辑:添加:

mr:layout_constraintWidth_default="percent"
mr:layout_constraintWidth_percent="1"

到View布局似乎有效,现在我需要将内容集中......

1 个答案:

答案 0 :(得分:0)

View用于显示九个补丁画面的约束之一是错误的:

mr:layout_constraintStart_toStartOf="@string/numerator"

您正在尝试将View的结尾约束为字符串资源,这实际上不会引发任何错误。

由于您希望此View与提名者或分母一起展开(以较长者为准)并且您的父ConstraintLayout android:layout_width设置为wrap_content,您可以约束Viewparent的水平约束如下:

<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" />

结果:

enter image description here

enter image description here

enter image description here