ограничение снизу, но позволяет клавиатуре покрывать вид - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть представление, ограниченное до основания родителя.У меня также есть текстовые поля сверху.тем не менее, когда клавиатура появляется, она выдвигает виды снизу вверх, которые покрывают мои текстовые поля.

У меня есть все в виде прокрутки, клавиатура должна закрывать вид снизу, и я должен иметь возможность прокручивать внизчтобы достичь вид снизу.

Вот простой пример.Я вручную увеличил высоту, чтобы легче воспроизвести проблему.У меня на самом деле есть больше просмотров, это только для демонстрации.

обратите внимание, что fillViewPort также включен.

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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:fillViewport="true">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:id="@+id/edit_text_1"
            android:layout_width="0dp"
            android:layout_height="180dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />

        <EditText
            android:id="@+id/edit_text_2"
            android:layout_width="0dp"
            android:layout_height="180dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/edit_text_1" />

        <View
            android:id="@+id/bottom_view"
            android:layout_width="0dp"
            android:layout_height="160dp"
            android:background="@color/grey_500"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

1 Ответ

0 голосов
/ 14 декабря 2018

Вам просто нужно поместить ScrollView внутрь ConstraintLayout следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:layout_width="0dp"
                android:layout_height="180dp"
                android:inputType="textPersonName"
                android:ems="10"
                android:id="@+id/edit_text_1"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent"/>
            <EditText
                android:layout_width="0dp"
                android:layout_height="180dp"
                android:inputType="textPersonName"
                android:ems="10"
                android:id="@+id/edit_text_2"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/edit_text_1"/>
            <View
                android:layout_width="0dp"
                android:layout_height="160dp"
                android:id="@+id/bottom_view"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/edit_text_2"/>
        </androidx.constraintlayout.widget.ConstraintLayout>
    </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
...