Scrollview скролит вверх только до первого EditText
У меня на экране для редактирования позиции есть эмуляция диалогового окна(не диалог, потому что некоторые позиции нужно затенять, а некоторые нет). То есть по факту открываю или закрываю ConstraintLayout который расположен по центру экрана. Это диалоговое окно нормально помещается пока не открыли клавиатуру.
В нем есть шапка и ряд полей для ввода, a так же кнопка сохранить.
В дальнейшем оказалось, что на меленьких телефонах кнопка сохранить не помещалась и перекрывалась клавиатурой.
Поэтому решил обернуть ConstraintLayout в ScrollView. В итоге теперь при открытии клавиатуры содержимое диалогового окна нормально скролится, только вот вехняя шапка съедается(там заголовок и кнопка крестик для закрытия)
Что можно сделать, чтоб при вызове клавиатуры скролилось полноценно все окно?
Режим активити android:windowSoftInputMode="adjustResize"
Если нужна дополнительная инфа пишите в комментариях
Ответы (2 шт):
Скорее наоборот следует обернуть ScrollView в ConstraintLayout. Но я бы вообще посоветовал использовать CoordinatorLayout
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/addCoordinatorLayout"
tools:context=".MainActivity">
<ScrollView
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</ScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
Sorry всем кого побеспокоил своим вопросом, проблема была достаточно глупая. Когда оборачивал ConstraintLayout через ScrollView я забыл убрать
android:gravity="center"
такое чувство что ScrollView при появлении клавиатуры не ресайзил экран, а поднимал его на верх. Из-за чего верхушка ConstraintLayout уходила за пределы экрана. Достаточно странное для меня поведение. При условии что манифесте прописано
android:windowSoftInputMode="adjustResize"