我只能用xml做到这一点:


相对布局中的视图A在某些视图B对齐时
可见。
相对布局中的View-A在某些情况下与某些View-C对齐
视图-B不见了?


考虑B上方的C和A上方的B:

最佳答案

您不能直接在xml中执行此操作,但是可以根据需要使用layout_alignWithParentIfMissing

例如,如果将View-A左对齐到View-B,并且View-B可见性消失了,则View-A会左对齐到其相对布局父级。

请参见下一个示例:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <View
        android:id="@+id/viewB"
        android:layout_width="20dp"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true" />

    <View
        android:id="@+id/viewA"
        android:layout_width="20dp"
        android:layout_height="match_parent"
        android:layout_toLeftOf="@id/viewB"
        android:layout_alignWithParentIfMissing="true" />

</RelativeLayout>


如果viewB是可见的,则viewB将在RelativeLayout的右侧,而viewA将在其左侧。如果viewB不存在,则viewA将在RelativeLayout的右侧。

没有这一行:

android:layout_alignWithParentIfMissing="true" />


当viewB消失时,viewA将显示在RelativeLayout的左侧。

对于您的示例,只需将layout_toLeftOf属性替换为layout_above。

否则,您需要以编程方式在您的活动(或片段,或其他任何地方...)中更改View-A或View-B对齐方式

10-07 16:13