我只能用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对齐方式