0

Привет Я проектирую навигационное приложение как проект Uni. У меня возникают проблемы с тем, чтобы кнопка оставалась под мягкой клавиатурой, когда она появляется. Я использую LinearLayout как фрейм. Я много искал и пробовал разные методы, но ничего не работает.Кнопка Softkeyboard перемещается в LinearLayout

a picture of the problem

Вот мой XML-файл:

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

    <LinearLayout 
     android:layout_width="0px" 
     android:layout_height="0px" 
     android:focusable="true" 
     android:focusableInTouchMode="true" /> 

    <requestFocus /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.0" 
     android:orientation="vertical" > 

     <EditText 
      android:id="@+id/navi_searchfield1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:hint="Current location" > 
     </EditText> 

     <ListView 
      android:id="@+id/navi_listview1" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp"> 
     </ListView> 

     <EditText 
      android:id="@+id/navi_searchfield2" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:hint="Destination" /> 

     <ListView 
      android:id="@+id/navi_listview2" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 
     </ListView> 

    </LinearLayout> 

    <Button 
     android:id="@+id/start_navigation" 
     android:layout_width="fill_parent" 
     android:layout_height="40dip" 
     android:background="@drawable/start" 
     android:textColor="#ffffff" 
     android:text="Start navigation" /> 

</LinearLayout> 

ответ

1

Добавить android:windowSoftInputMode="adjustPan" в вашей деятельности в AndroidManifest.xml как:

<activity 
       android:windowSoftInputMode="adjustPan" 
. 
. 
.     
    </activity> 

Это предотвратит SoftKeyboard от переместив кнопку , давая вам выход: enter image description here

Вы можете использовать кнопку, даже если клавиатура отображается с помощью прокрутки на экране. Но я думаю, что вы, вероятно, не можете показать клавиатуру над кнопкой, потому что я работал с SoftKeyboard и он использует:

android:layout_alignParentBottom="true" 

Таким образом, вы можете только сохранить макет в безопасности от толкают SoftKeyboard.

+0

Добавление android: windowSoftInputMode = "adjustPan" не работает ни android: layout_alignParentBottom = "true" или оба вместе ... – Philip

+0

@PhilipMasek Я сказал, что [Softkeyboard] (http://pastebin.com/trhPZG1U) использует ** android: layout_alignParentBottom = "true" **, поэтому он продолжает выскакивать снизу, вы не можете использовать android: layout_alignParentBottom без ** RelativeLayout **. ** android: windowSoftInputMode = "adjustPan" ** просто отлично работает для меня, я пробовал с вашим XML. Вы можете попробовать использовать следующие ** XML ** и ** Manifest File **, которые работали для меня. [XML] (http://pastebin.com/inepx8JK) [Manifest] (http://pastebin.com/HwZC5caP) –

+0

Скопировано весь ваш код в проект, но, к сожалению, до сих пор не успех ... – Philip

Смежные вопросы