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 видны при открытии клавиатуры...