2010-08-24 64 views
17

我在ViewLayout中添加了一个ViewSwitcher,它有两个不同高度的视图,但ViewSwitcher似乎占用了最大视图的空间,而不是安排自己。这是应该如何?Android中的ViewSwitcher和布局高度

在另一种情况下该怎么办?我试图创建一个手风琴,其中标题面板在点击时尺寸增大

回答

43

由ViewAnimator继承的ViewSwitcher的默认行为是考虑布局上的所有子视图,这将导致ViewSwitcher占用最大的孩子的空间。

要改变这一点,你需要做的就是将MeasureAllChildren标志设置为false。这将使布局通过忽略当前隐藏的子视图。设置此标志,例如在活动的onCreate方法,如:

ViewSwitcher switcher = (ViewSwitcher)findViewById(R.id.ViewSwitcher); 
    switcher.setMeasureAllChildren(false); 

XML!例如:

<ViewSwitcher xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/viewSwitcher" 
     android:measureAllChildren="false"> 
</ViewSwitcher> 
+0

你的人,感谢 – j2emanue 2017-08-09 05:28:08

+0

如何让动画,并有其插值的听众,而这切换到另一个视图,但? – 2017-12-21 13:32:40