如何让ViewSwitcher仅包装当前显示的视图高度?

时间:2011-03-29 00:18:21

标签: android android-layout android-listview android-animation

我正在使用ViewSwitcher,让我可以轻松地在内置动画的两个不同的列表标题之间来回切换。

然而,问题是两个视图的高度变化很大,看起来ViewSwitcher带有layout_height="wrap_content",测量两个孩子并将两个高度中的较大者视为自己的高度。当显示时,这会在较小的视图正下方产生大量不需要的空白区域。

我理解为什么这是理想的ViewSwitcher行为,但它不希望My App行为。

例:
Say View A高50dp,View B高100dp,两者都作为子项添加到ViewSwitcher。即使View A显示,ViewSwitcher总是高达100dp。

我想要的是能够在A和B之间切换并让ViewSwitcher缩小或增长以适合当前显示的任何视图。我该怎么做?

1 个答案:

答案 0 :(得分:39)

measureAllChildren上的ViewSwitcher属性设置为false

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

有关详细信息,请参阅documentation