Android: как избежать нажатия на макет при вызове клавиатуры - PullRequest
4 голосов
/ 11 августа 2011

У меня есть макет, как показано ниже

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="1">
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content">
    <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
    <Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
    <Button android:text="Button" android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
    <Button android:text="Button" android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
    <Button android:text="Button" android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
<ImageButton android:id="@+id/imageButton1" android:src="@android:drawable/stat_notify_sync_noanim" android:layout_height="fill_parent" android:layout_weight="1" android:layout_width="fill_parent"></ImageButton>
<EditText android:id="@+id/editText1" android:layout_height="wrap_content" android:layout_width="match_parent">
    <requestFocus></requestFocus>
</EditText>
</LinearLayout>

когда программная клавиша вызывается нажатием на редактируемый текст, весь лау будет толкаться. Могу ли я оставить кнопки на заголовке фиксированными и позволить нажатию на изображение? Поскольку кнопки будут действовать как панель навигации, так что она должна быть там, даже когда макет перемещается вверх.

Перед enter image description here

После enter image description here

Ответы [ 3 ]

11 голосов
/ 11 августа 2011

Прочитайте статью здесь: http://android -developers.blogspot.com / 2009/04 / update-Applications-for-on-screen.html
Вы должны добавить в манифест android: windowSoftInputMode =Параметр «AdjustResize» для вашего тега активности.

РЕДАКТИРОВАНИЕ: Правильный флаг: android: windowSoftInputMode = «AdjustResize»

10 голосов
/ 22 октября 2013

Из всех свойств в android: windowSoftInputMode в манифесте единственное, что сработало, это

андроида: windowSoftInputMode = "adjustNothing"

5 голосов
/ 06 сентября 2013

В своем файле AndroidManifest я добавил следующий код к активности:

android:windowSoftInputMode="adjustPan"

ИСТОРИЯ

На самом деле я пробовал AdjustResize и AdjustNothing, но у меня не получилось, поэтому я попробовал другие способы. Я нашел этот ответ полезным и надеюсь, что он решит и вашу проблему! :)

...