Ответ 1
Поведение ViewSwitcher по умолчанию, унаследованное 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>