Как заставить ViewSwitcher обернуть только текущую отображаемую высоту?

Я использую ViewSwitcher, который позволяет мне легко переключаться между двумя разными заголовками заголовков с встроенными анимациями.

Однако проблема состоит в том, что два представления имеют значительно различную высоту, и кажется, что ViewSwitcher с layout_height="wrap_content" , измеряет обоих детей и берет большую из двух высот как своих собственных. Это приводит к большому количеству нежелательного пробела сразу же под меньшим представлением, когда оно отображается.

Я понимаю, почему это желательно поведение ViewSwitcher, но НЕ НЕОБХОДИМО. Мое поведение в приложении.

Пример:
Say View A – 50dp tall, а View B – 100dp, и оба они добавляются как дети в ViewSwitcher. ViewSwitcher всегда имеет высоту 100dp даже при просмотре View A.

Я хочу, чтобы иметь возможность переключаться между A и B и уменьшать или увеличивать ViewSwitcher, чтобы он соответствовал тому, что отображается в настоящее время. Как я могу это сделать?

Установите для параметра 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"> 

Для получения дополнительной информации см. Документацию .