Yesudass Moses Ответов: 1

Сделать положение текста курсор клавиатуры в Android


У меня есть несколько многострочных элементов управления EditText в ScrollView. Когда я нажимаю на любой из элементов управления EditText, появляется программная клавиатура,
но EditText и его положение курсора появляются за клавиатурой. Мне нужно вручную прокрутить вид сверху.
Есть ли какой-нибудь способ исправить эту проблему? В приведенном ниже коде cameraButton всегда появляется над клавиатурой.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout

    android:id="@+id/crlayout"

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    android:layout_height="match_parent"

    android:layout_width="match_parent">
<ScrollView

        android:id="@+id/scrollview"

        android:layout_height="wrap_content"

        android:layout_width="match_parent"

        android:layout_alignParentTop="true">
<LinearLayout

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:orientation="vertical">
        <ImageView

            android:id="@+id/boxImage"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:adjustViewBounds="true"

            />
        <EditText

            android:id="@+id/new_box_title"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:ems="10"

            android:hint="Title"

            android:inputType="textPersonName" />

        <EditText

            android:id="@+id/new_box_descri"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:hint="Description"

            android:gravity="top"

            android:inputType="textCapSentences|textMultiLine"

            android:lines="5"

            android:windowSoftInputMode="stateAlwaysVisible" />

</LinearLayout>
    </ScrollView>
    <LinearLayout

        android:layout_height="wrap_content"

        android:layout_width="match_parent"

        android:layout_alignParentBottom="true"

        android:orientation="horizontal"

        android:background="@android:color/white"

        >
        <ImageButton

            android:id="@+id/cameraButton"

            android:layout_width="wrap_content"

            android:layout_height="50dp"

            android:layout_weight="1"

            android:contentDescription="Open Camera"

            app:srcCompat="@drawable/ic_box_camera_icon"

            android:background="?attr/selectableItemBackgroundBorderless"

            />
    </LinearLayout>
</RelativeLayout>


Что я уже пробовал:

Я попытался прокрутить scrollView вниз по щелчку EditText, но это не сработает, так как клавиатура появляется после щелчка EditText onClick, а макет изменяется по мере появления клавиатуры.

1 Ответов

Рейтинг:
10

JesalMithani

В файле манифеста добавьте приведенный ниже код для этого действия

<activity android:windowSoftInputMode="adjustPan">


Если вышеописанный метод не работает, то попробуйте этот

android:windowSoftInputMode="stateVisible|adjustResize"