0

我正在尝试编写一个小代码,其条件是如果布尔值设置为 true,则只有所有三个亲戚都应该出现在用户界面中。如果设置为 false,则只应显示两个布局。我能够做到这一点。

我的问题是,当我检查条件并将条件设置View.INVISIBLE为 layout2 时,布局 1 和 3 之间出现了间隙。如何消除这个间隙?我的布局是在 XML 中创建的,如下所示:

<RelativeLayout
    android:id="@+id/rl_one"
    android:layout_width="wrap_content"
    android:layout_height="40dp"                    
    android:layout_marginLeft="20dp"
    android:layout_marginTop="10dp" />

<RelativeLayout
   android:id="@+id/rl_two"
   android:layout_width="wrap_content"
   android:layout_height="40dp"
   android:layout_below="@+id/rl_one"
   android:layout_marginLeft="20dp"
   android:layout_marginTop="10dp" />

<RelativeLayout
    android:id="@+id/rl_three"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:layout_below="@+id/rl_two"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="10dp" />

谢谢你。

4

2 回答 2

3

您应该使用 View.GONE 代替 View.INVISIBLE 。

于 2012-05-14T11:25:38.673 回答
1

对您的代码进行 2 处更改

  1. layout_height="wrap_content"在xml中
  2. 替换View.INVISIBLEView.GONE

如果你正在使用,View.INVISIBLE那么你的视图只是不可见的,但你可以看到你的 UI 之间的差距,如果你使用,View.GONE那么你的 UI 看起来没有任何差距:)

于 2012-05-14T11:30:57.857 回答