layout_anchor和layout_anchorGravity不能按预期工作

时间:2015-11-05 13:55:35

标签: android android-layout

有谁知道这个截图

enter image description here

正确反映了这种布局吗?

    <android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/text_view1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="#FFFFFF80"
        style="@android:style/TextAppearance.DeviceDefault.Large"
        android:text="@string/text_1"/>
    <TextView
        android:id="@+id/text_view2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        app:layout_anchor="@id/text_view1"
        app:layout_anchorGravity="bottom|right"
        android:background="#FFFF8080"
        style="@android:style/TextAppearance.DeviceDefault.Large"
        android:text="@string/text_2"/>
    <TextView
        android:id="@+id/text_view3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        app:layout_anchor="@id/text_view2"
        app:layout_anchorGravity="bottom|right"
        android:background="#FF8080FF"
        style="@android:style/TextAppearance.DeviceDefault.Large"
        android:text="@string/text_3"/>
</android.support.design.widget.CoordinatorLayout>

我没想到文本视图有任何重叠,但可能是我的期望不正确?

1 个答案:

答案 0 :(得分:11)

正如@ana 01在评论中提到的那样,除了android:layout_gravity="right"之外,您还应添加app:layout_anchorGravity="right"。默认情况下,app:layout_anchorGravity的作用类似于从属视图通过锚点视图的中心与锚点的视图对齐。

因此,如果您想将一个视图相对于其他视图对齐,则应设置从属视图的边缘或重力,该视图将用于通过android:layout_gravity属性进行对齐。