设置视图可见性GONE保留其他视图

时间:2015-09-02 16:07:57

标签: java android xml

我有一些看起来像这样的xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    <TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="text"
    android:id="@+id/Text"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:textSize="34sp"/>
   <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Call"
    android:id="@+id/callText"
    android:layout_below="@+id/Text"
    android:layout_alignLeft="@+id/Text"
    android:layout_alignStart="@+id/Text"
    />

 />

现在我想将标识为Text的TextView设置为GONE,但是当我这样做时,标识为callText的TextView也会消失,我想要的是设置{{1} } GONE,然后让Text向上移动,并保持可见?

我怎么能这样做?

由于

3 个答案:

答案 0 :(得分:3)

如果缺少指定的锚点,您可以使用android:layout_alignWithParentIfMissing="true"将父项作为锚点:

http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#attr_android:layout_alignWithParentIfMissing

  

如果设置为true,则当无法找到layout_toLeftOf,layout_toRightOf等的锚点时,父项将用作锚点。

答案 1 :(得分:1)

问题是db.serverStatus().storageEngine textView位置取决于文本{ "name" : "wiredTiger" }位置。最简单的方法是使用callText代替textView,但如果您想保留该布局,可以按照ci_的建议使用LinearLayout或删除位置依赖关系。

答案 2 :(得分:0)

只使用垂直LinearLayout代替RelativeLayout。然后,您可以自由设置TextGONE的可见性,而不会破坏callText的展示位置。