android: IsScrollContainer не работает после перехода на экран.
У меня определен следующий макет:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/top_layout"
android:layout_width="0dp"
android:layout_height="66dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
</androidx.constraintlayout.widget.ConstraintLayout>
<ScrollView
android:id="@+id/scroll_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:isScrollContainer="false"
app:layout_constraintTop_toBottomOf="@id/top_layout"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/bottom1">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:isScrollContainer="false"
android:padding="16dp">
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/last_name_field"
android:layout_width="0dp"
android:layout_height="34dp"
android:layout_marginTop="8dp"
android:paddingStart="8dp"
android:paddingEnd="8dp"
app:hintAnimationEnabled="false"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:inputType="text"
android:textSize="14sp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/bottom1"
android:layout_width="0dp"
android:layout_height="74dp"
android:background="@color/colorPrimaryDark"
app:layout_constraintTop_toBottomOf="@id/scroll_view"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/bottom2">
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/bottom2"
android:layout_width="0dp"
android:layout_height="66dp"
android:background="@color/colorPrimary"
app:layout_constraintTop_toBottomOf="@id/bottom1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
Внутри вида прокрутки находится текст EditText, и есть фиксированный макет выше и ниже вида прокрутки.
Когда отображается клавиатура, я не хочу отображать нижний макет на клавиатуре, поэтому я установил для isScrollContainer значение false.
Мое приложение использует NavController выполнять переходы экрана, но в следующих случаях isScrollContainer может не работать.
(TargetFragment находится над макетом.)
- Случай, который работает.
(Выберите меню «Ящик навигации») -> TargetFragment
- Случаи, которые не работают.
(Выберите меню «Ящик навигации») -> OtherFrag mnet -> ( navigate) -> TargetFragment (не работает)
Почему isScrollContaier = false не действует после навигации по NavController, даже если макет точно такой же?