Предложение AutoCompleteTextView скрывается под клавиатурой, когда есть только одно предложение

Я использую AutoCompleteTextView в своем проекте Android, почти все работает, как и ожидалось, за исключением следующего:

Когда у меня есть только одно предложение для отображения, это предложение скрыто под программной клавиатурой. Но когда у меня есть более одного предложения, они появляются над программной клавиатурой (но, к сожалению, не над моим AutoCompleteTextView), и я могу видеть их все и прокручивать их, если их много.

Я пытался изменить android:dropDownHeight, но безуспешно. Я также попытался установить android:windowSoftInputMode="adjustResize|adjustPan", и это работает (я вижу все предложения, даже если есть только одно), но затем это мешает моему макету и искажает все, что отображается.

Можно ли заставить выпадающие предложения всегда отображаться над AutoCompleteTextView? Иначе как я мог решить эту проблему?

Вот XML для AutoCompleteTextView:

<AutoCompleteTextView
    android:id="@+id/autoCompleteTextView"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:maxLines="1"
    android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"
    android:ems="10"
    android:inputType="text"
    android:fontFamily="@font/poppins_bold"
    android:textColor="@color/colorPrimary"
    android:background="@drawable/backwithborder"
    android:padding="8dp"
    android:paddingLeft="12dp"
    android:paddingStart="12dp"
    android:maxLength="25"
    android:dropDownAnchor="@id/givePointsToText"
    android:layout_toRightOf="@id/pointsSpinner"
    android:layout_toEndOf="@id/pointsSpinner"
    android:layout_toLeftOf="@id/givePointsButton"
    android:layout_toStartOf="@id/givePointsButton"
    android:layout_centerVertical="true"
    android:dropDownWidth="match_parent"/>


person Alex    schedule 12.07.2020    source источник


Ответы (2)


Добавьте это в свой файл манифеста:

android:windowSoftInputMode="adjustPan|adjustResize"

нравится:

  <activity
        android:name="com.example.adjustscroll.MainActivity"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustPan|adjustResize" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
person gpl    schedule 12.07.2020
comment
Я попробовал это, и это работает, но adjustResize искажает все, что осталось на экране. Есть ли способ исправить это? - person Alex; 13.07.2020
comment
Я не могу сказать, так как вы не разместили полный файл макета. Клавиатура занимает всю ширину экрана. Не могу понять, почему искажается только левая часть. Что слева? Что в правом? - person gpl; 13.07.2020
comment
Я имел в виду, что все, что остается на экране, искажено, как и мои изображения. Я исправил свою проблему, переместив AutoCompleteTextView в верхнюю часть экрана. - person Alex; 15.07.2020

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

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

person Alex    schedule 15.07.2020