Android: как нажимать кнопку над клавиатурой

У меня есть кнопка "Сохранить", которую я хочу нажать вместе с мягкой клавиатурой. Поэтому, когда пользователь нажимает на EditText в моем макете, кнопка должна оставаться выше клавиатуры. Теперь кнопка скрывается под клавиатурой. Как вы это делаете?

Спасибо заранее!

Ответ 1

Вам необходимо установить режим ввода с клавиатуры для adjustResize. Вы можете сделать это, добавив следующую строку к вашим атрибутам активности в манифесте:

    android:windowSoftInputMode="adjustResize"

Вот пример атрибута, добавленного в упражнение:

<activity 
     android:name=".activity.MyActivity"
     android:windowSoftInputMode="adjustResize">
</activity>

Ответ 2

Наряду с ответом Inthathep, вы должны добавить атрибут в родительскую группу просмотра

android:fitsSystemWindows="true"

работать по желанию. т.е. в файле манифеста, для действия добавьте

android:windowSoftInputMode="adjustResize"

и напр.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:fitsSystemWindows="true" <!-- add this -->
    android:orientation="vertical"
    >
    <EditText
        android:id="@+id/et_assetview_comment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:minHeight="80dp"
        android:background="@color/white"
        android:hint="Enter comments"
        />
    <Button
        android:id="@+id/btn_assetview_postcomment"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="POST"
        />
</LinearLayout>

Ответ 3

Закажите свой макет таким образом, и вы сможете поставить кнопку на клавиатуру выше

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/button_next"
        android:background="#0ff"
        >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="250dp"
                android:hint="Hint"
                />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="ABC"
                android:textSize="50sp"
                />
        </LinearLayout>
    </ScrollView>

    <Button
        android:id="@+id/button_next"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_margin="10dp"
        android:text="Button Next"
        />

</RelativeLayout>

В манифесте android

<application
        ...
        >
        <activity android:name=".YourActivity"
            android:windowSoftInputMode="adjustResize"
           >
        </activity>
</application>

введите описание изображения здесь

Обратите внимание, что вместо RelativeLayout вы также можете использовать другой ViewGroup, например LinearLayout с весом, CordinatorLayout,...

Ответ 4

Итак, это довольно старый пост, но я боролся с предоставленными ответами. И oneavi, и Intahep верны, но позвольте мне показать вам ТОЧНО, где идет android:windowSoftInputMode="adjustResize".

в манифесте Android

    <activity android:name=".DataScreen" />
    <activity android:name=".PauseScreen" />
    <activity android:name=".RouteInfo"
               android:windowSoftInputMode="adjustResize"> <!--This goes in the specific activity with the button -->
    </activity>

Ответ 5

Лучший способ - скрыть нажатие клавиш и, при необходимости, нажать кнопки над клавиатурой.

 android:windowSoftInputMode="adjustResize|stateHidden"

Ответ 6

Его работы великолепны, когда кнопки и edittext видны при открытии клавиатуры...