У меня есть активность, которая содержит фон + фрагмент. В задании также используется привязка данных
Фрагмент содержит два Recyclerview и EditText
архитектура xml выглядит следующим образом:
активность. xml
<layout>
<data></data>
<ConstraintLayout>
<include> <-- appBar
<CoordinatorLayout>
<ConstraintLayout/> <--backdrop content
<ConstraintLayout>
<FrameLayout> <-- hold the current fragment
</ConstraintLayout>
</CoordinatorLayout>
<ConstraintLayout>
</layout>
фрагмент. xml
<ConstraintLayout>
<RecyclerView
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/edit_text"
app:layout_constraintTop_toTopOf="parent"/> <-- LinearLayoutManager
<HorizontalScrollView
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/edit_text"
app:layout_constraintTop_toTopOf="parent">
<RecyclerView/> <-- GridLayoutManager
</HorizontalScrollView>
<EditText
app:layout_constraintBottom_toBottomOf="parent"/>
</ConstraintLayout>
Когда я нажимаю на элемент (независимо от того, что представляет собой recyclerView), текст редактирования становится сфокусированным и появляется программная клавиатура
В этот момент представление не изменяет размер, чтобы соответствовать видимому окну. Это означает, что если выбранный элемент находится внизу, он становится скрытым.
Я установил windowSoftInputMode="adjustResize|stateVisible"
в Манифест.
Я установил fitsSystemWindows="true"
в разных местах, пытаясь изменить Ограничения по LinearLayout, но ничего не работает. Я не могу использовать setReverseLayout
на менеджере, потому что GridLayoutManager не справился с этим.
Я не знаю, в чем проблема, почему мой вид не изменяется при отображении программной клавиатуры. Но по какой-то причине EditText хорошо перемещается в зависимости от видимости клавиатуры