我在A,B,C,D
上有4个按钮RelativeLayout
。
按钮C有时是可见的,有时不是 - 取决于在布局出现之前每次设置的某些条件。
如果所有按钮都可见,我喜欢按下这样的按钮:
A
乙
C
d
否则,如果C不可见,则
A
乙
d
由于我使用android:layout_below="@+id/buttonX"
来定位按钮,我不知道如何处理条件C和D按钮。
最好的方法是什么?
答案 0 :(得分:1)
虽然我不喜欢嵌套视图,但一个简单的解决方案是在LinearLayout中包含你的底部两个按钮
实施例
<RelativeLayout>
<A>
<B>
<LinearLayout android:orientation="vertical">
<C>
<D>
</LinearLayout>
</RelativeLayout>
这样你可以将LinearLayout设置为低于B,如果缺少C或D则无关紧要
答案 1 :(得分:0)
对于我来说,我使用以下代码通过编程方式设置了父对象:
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) view.getLayoutParams();
if (reliantViewVisible) {
lp.addRule(RelativeLayout.BELOW, R.id.reliantView);
} else {
lp.addRule(RelativeLayout.BELOW, R.id.fallbackView);
}
如果下一个元素是初始父元素,则可能在XML中适合您
android:layout_alignWithParentIfMissing="true"
答案 2 :(得分:-1)
RelativeLayout已经为你做了你想做的事。如果C的可见性“消失”,它会自动将D置于B以下。