Я пытаюсь создать очень специфическое поведение в макете Android, содержащем два фрагмента, когда открывается мягкая клавиатура, как показано ниже слева направо.Свертывание и прокрутка Просмотров в LinearLayout View
Фрагмент A - форма, требующая мягкого ввода клавиатуры, а фрагмент B - фотографическое слайд-шоу и служит только визуальным наполнителем.
Синий контур представляет собой вид корня. Фрагмент A - фиксированная высота, а фрагмент B заполняет оставшееся вертикальное пространство. Когда клавиатура открывается, фрагмент B разрушается до тех пор, пока его высота не станет равной 0, после чего фрагмент A станет прокручиваемым.
Я попытался следующий:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/FragmentB"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/FragmentA"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</ScrollView>
</LinearLayout>
В этом виде фрагмент B остается на ту же высоту, когда экранная клавиатура открывается, и вместо фрагмента А разрушается.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/FragmentB"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/FragmentA"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</ScrollView>
И в этом представлении Фрагмент B постоянно разрушился, и остается зазор в нижней части окна ниже фрагмент А.
Как можно достичь поведения макета я выложил на диаграмме выше ?
Спасибо!