Android中的ViewSwitcher和布局高度

时间:2010-08-24 15:49:53

标签: android

我在一个LinearLayout中添加了一个ViewSwitcher,它有两个不同高度的视图。但是看起来ViewSwitcher占据了最大视图的空间,而不是安排自己。这是怎么回事?

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

1 个答案:

答案 0 :(得分:50)

ViewAwmather的默认行为(由ViewAnimator继承)是考虑布局上的所有子视图,这将导致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>