2

我有 4 个按钮A,B,C,DRelativeLayout

按钮 C 有时可见,有时不可见 - 取决于每次在布局出现之前明确设置的某些条件。

如果所有按钮都可见,我喜欢这样放置按钮:

一种

C

D

否则,如果 C 像这样不可见

一种

D

由于我使用android:layout_below="@+id/buttonX"定位按钮,我不知道如何处理条件 C 和 D 按钮。

最好的方法是什么?

4

3 回答 3

1

虽然我不喜欢嵌套视图,但一个简单的解决方案是将底部的两个按钮包含在 LinearLayout

前任。

<RelativeLayout>

     <A>
     <B>

     <LinearLayout android:orientation="vertical">
       <C>
       <D>
     </LinearLayout>

</RelativeLayout>

这样,您可以将 LinearLayout 设置在 B 以下,并且缺少 C 或 D 无关紧要

于 2012-04-19T19:39:32.033 回答
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"

于 2018-07-25T18:22:47.273 回答
-1

RelativeLayout 已经为您做您想做的事情。如果 C 的可见性“消失”,它将自动将 D 置于 B 之下。

于 2012-04-19T21:16:52.430 回答