2011-04-22 99 views
93

在我的应用程序中,我有2个LinearLayout。通过一个菜单选项,我希望能够使最下面的一个消失,并且让最上面的一个掉落在消失的LinearLayout上。如何以编程方式隐藏视图?

问题是,我不知道如何在Java中做到这一点。

它不一定是动画,我想隐藏Layout返回另一个活动(菜单),在OnActivityResultactivity设置一个boolean关于这一点我在01​​检查菜单,并根据它的值,我确定我是否需要隐藏或显示底部Layout

// Only change value if it is different from what it was. 
if(mUseVolumeButtonAsPTT != resultData.getBoolean("UseVolumeButtonAsPTT")){ 
    mUseVolumeButtonAsPTT = resultData.getBoolean("UseVolumeButtonAsPTT"); 
    if(!mUseVolumeButtonAsPTT){ 
     // Hide lower LinearLayout. 
    } else { 
     // Show lower LinearLayout. 
    } 
} 

任何人都可以给我一个提示或如何我一个链接应该这样做?

回答

255

你可以打电话view.setVisibility(View.GONE),如果你想从布局中删除它。

view.setVisibility(View.INVISIBLE)如果你只是想隐藏它。

Android Docs

看不见

这种观点是无形的,但它仍然占用空间布局的目的。与setVisibility(int)android:visibility一起使用。

GONE

这种观点是不可见的,并且它不采取任何空间布局的目的。与setVisibility(int)android:visibility一起使用。

+15

如果用户设置为view.setVisibility(View.INVISIBLE),用户仍可以与它交互吗? – WhiskThimble 2013-04-24 08:24:26

+8

nope,他们不能 – Quillion 2013-09-10 16:14:14

+0

例如,如果一个活动设置为GONE,一个活动可以更改视图吗?如果它被设置为INVISIBLE,我会想象你可以。 – moatist 2014-07-28 04:53:56

15

试试这个:

linearLayout.setVisibility(View.GONE); 
相关问题