将视图与另一个TextView

时间:2017-11-12 16:43:48

标签: android

我尝试在TextView之后创建一个在底部对齐的简单线条。我使用RelativeLayout作为带有alignBaseLine的容器。但结果不是我需要的(见下图)与对齐两个TextView不同,当我对齐TextView和View时,它从底部到顶部不对齐。它从View到top的顶部开始。有什么方法可以实现这个目标吗?

enter image description here

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/tvTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Brand We Love"
        android:textAllCaps="true"
        android:textColor="@color/colorAccent"
        android:textSize="18sp" />

    <View
        android:layout_width="match_parent"
        android:layout_height="3dp"
        android:layout_alignBaseline="@id/tvTitle"
        android:layout_gravity="bottom"
        android:layout_marginLeft="8dp"
        android:layout_marginStart="8dp"
        android:layout_toEndOf="@+id/tvTitle"
        android:layout_toRightOf="@+id/tvTitle"
        android:background="@color/colorAccent" />

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

鉴于android:layout_alignBaseline会将View定位在基线的正下方,您可以使用此约束将不可见的View置于其中作为指导,然后定位View 1}}高于指南:

<TextView
    android:id="@+id/tvTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Brand We Love"
    android:textAllCaps="true"
    android:textColor="@color/colorAccent"
    android:textSize="18sp" />


    <View
        android:id="@+id/guideline"
        android:layout_width="match_parent"
        android:layout_height="3dp"
        android:layout_alignBaseline="@id/tvTitle"
        android:layout_marginLeft="8dp"
        android:layout_marginStart="8dp"
        android:layout_toEndOf="@+id/tvTitle"
        android:layout_toRightOf="@+id/tvTitle"
        android:background="#00000000" />

    <View
        android:layout_width="match_parent"
        android:layout_height="3dp"
        android:layout_above="@+id/guideline"
        android:layout_marginLeft="8dp"
        android:layout_marginStart="8dp"
        android:layout_toEndOf="@+id/tvTitle"
        android:layout_toRightOf="@+id/tvTitle"
        android:background="@color/colorAccent" />

答案 1 :(得分:0)

对于ConstraintLayout,将基线设置为底部并统一基线。

简而言之-只需将这些行添加到您的View

android:baselineAlignBottom="true"
app:layout_constraintBaseline_toBaselineOf="@id/textView"