Мягкая клавиатура покрывает editText в ScrollView-раскладке - PullRequest
0 голосов
/ 01 июня 2018

Я работаю над фрагментом Android с этим макетом:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@color/very_dark_transparent_grey"
    tools:ignore="MissingPrefix">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:id="@+id/invite_code_input_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/spacing_semi_huge"
        android:gravity="center_horizontal"
        android:orientation="vertical">

        <TextView
            fontPath="fonts/helveticaneue/Helvetica Neu Bold.ttf"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/join_fragment_invite_code"
            android:textColor="@color/white"
            android:textSize="@dimen/font_larger" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:paddingLeft="@dimen/spacing_huge"
            android:paddingRight="@dimen/spacing_huge">

            <io.brandie.brandie.custom.InviteCodeEditText
                android:id="@+id/invite_code_edit_text"
                fontPath="fonts/helveticaneue/Helvetica Neu Bold.ttf"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/spacing_smaller"
                android:cursorVisible="false"
                android:digits="1234567890"
                android:inputType="number"
                android:maxLength="6"
                android:textIsSelectable="false"
                android:textSize="32sp" />

        </LinearLayout>

        <TextView
            fontPath="fonts/helveticaneue/Helvetica Neu Bold.ttf"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/spacing_large"
            android:layout_marginBottom="@dimen/spacing_large"
            android:text="@string/join_fragment_or"
            android:textColor="@color/lightGreen"
            android:textSize="@dimen/font_large"/>

    </LinearLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/invite_code_input_layout">

        <RelativeLayout
            android:id="@+id/message_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/request_to_join_text"
                fontPath="fonts/helveticaneue/Helvetica Neu Bold.ttf"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="@dimen/spacing_big"
                android:gravity="center"
                android:text="@string/join_fragment_pers_mess"
                android:textColor="@color/white" />

            <EditText
                android:id="@+id/request_to_join_text_area"
                android:layout_width="280dp"
                android:layout_height="120dp"
                android:layout_below="@+id/request_to_join_text"
                android:background="@drawable/rounded_edit_text"
                android:gravity="top|start"
                android:hint="@string/join_fragment_hint"
                android:inputType="textMultiLine"
                android:lines="6"
                android:layout_centerInParent="true"
                android:overScrollMode="always"
                android:paddingLeft="@dimen/spacing_normal"
                android:paddingRight="@dimen/spacing_normal"
                android:scrollHorizontally="false"
                android:scrollbars="vertical"
                android:textSize="@dimen/font_normal" />

            <TextView
                android:id="@+id/request_to_join_send_button"
                fontPath="fonts/helveticaneue/Helvetica Neu Bold.ttf"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/request_to_join_text_area"
                android:layout_marginTop="@dimen/spacing_semi_small"
                android:gravity="center"
                android:text="@string/join_fragment_send"
                android:textColor="@drawable/primary_text_color"
                android:textSize="@dimen/font_semi_epic" />

        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/pending_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="10dp"
            android:visibility="gone">

            <RelativeLayout
                android:id="@+id/checkbox"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <ProgressBar
                    android:id="@+id/circle_around_check"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="150dp"
                    android:layout_height="150dp"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:max="100"
                    android:progress="100"
                    android:progressDrawable="@drawable/circular_lightgreen_border"
                    android:rotation="0"
                    android:visibility="visible" />

                <ImageView
                    android:id="@+id/progress_card_check_mark"
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:src="@drawable/douglas_273_checkmark_white"
                    android:visibility="visible" />
            </RelativeLayout>

            <TextView
                android:id="@+id/request_pending_text"
                fontPath="fonts/helveticaneue/Helvetica Neu Bold.ttf"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/checkbox"
                android:gravity="center"
                android:text="@string/join_fragment_req_pend"
                android:textColor="@color/white"
                android:textSize="@dimen/font_semi_epic" />

            <TextView
                android:id="@+id/request_pending_edit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/request_pending_text"
                android:layout_marginTop="10dp"
                android:gravity="center"
                android:text="@string/join_fragment_edit"
                android:textColor="@drawable/primary_text_color"
                android:textSize="@dimen/font_large" />

           </RelativeLayout>

       </RelativeLayout>

   </RelativeLayout>

  </ScrollView>

Проблема в Edittext, когда я нажимаю на него, софт-клавиатура закрывает почти весь EditText, делая невозможным его просмотрчто вы печатаете.В манифесте я добавил строку:

android:windowSoftInputMode="adjustPan"

для действия, к которому прикреплен фрагмент (я также проверял «AdjustResize», но у меня была та же проблема).

Я также протестировал копирование editText в другой файл макета в том же упражнении, и тогда клавиатура не закрывает editText, а выталкивает весь макет вверх.Если я вместо этого копирую весь макет и помещаю его в другой макет, у меня возникает та же проблема с клавиатурой, покрывающей editText.

Это заставляет меня поверить, что что-то с этим макетом является причиной этой проблемы, но я не могувыяснить, что вызывает это и как это исправить.Как мне это исправить?

1 Ответ

0 голосов
/ 01 июня 2018

Прежде всего, добавьте этот код в родительский файл ScrollView

android:isScrollContainer="true"

и перейдите к файлу AndroidManifest.xml и

добавьте этот код ниже в свой activity tag android:windowSoftInputMode="adjustPan", как показано ниже: -

<activity
   android:name=".YourActivity"
   android:windowSoftInputMode="adjustPan"
 />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...