Board logo

標題: Android App - 軟鍵盤不蓋過 EditText [打印本頁]

作者: admin    時間: 2012-7-29 09:18     標題: Android App - 軟鍵盤不蓋過 EditText

當畫面含EditText  於底部, 如 layout 設定不好, 從底部彈出的軟鍵盤會蓋過EditText  , 看不到EditText  , 你只有盲打了. 以下的main.xml 就沒有出現這問題

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

  6.     <LinearLayout
  7.         android:id="@+id/linearLayout1"
  8.         android:layout_width="wrap_content"
  9.         android:layout_height="wrap_content" >

  10.         <Spinner
  11.             android:id="@+id/spinner1"
  12.             android:layout_width="wrap_content"
  13.             android:layout_height="wrap_content" />
  14.         <Spinner
  15.             android:id="@+id/spinner2"
  16.             android:layout_width="wrap_content"
  17.             android:layout_height="wrap_content"/>
  18.         <Spinner
  19.             android:id="@+id/spinner3"
  20.             android:layout_width="wrap_content"
  21.             android:layout_height="wrap_content"/>
  22.     </LinearLayout>

  23. <ListView
  24.     android:id="@+id/android:list"
  25.     android:layout_width="match_parent"
  26.     android:layout_height="10dip" android:layout_weight="1"/>

  27. <TextView
  28.     android:id="@+id/android:empty"
  29.     android:layout_width="fill_parent"
  30.     android:layout_height="0dip"
  31.     android:text="暫時未有任何資料可顯示" android:textSize="16dp" android:textColor="#FFFFFF" android:layout_weight="1"/>

  32. <LinearLayout
  33.     android:id="@+id/linearLayout2"
  34.     android:layout_width="match_parent"
  35.     android:layout_height="wrap_content" android:layout_weight="0">

  36.         <EditText
  37.             android:id="@+id/editText1"
  38.             android:layout_width="match_parent"
  39.             android:layout_height="wrap_content"
  40.             android:singleLine="true"
  41.             android:layout_weight="1"
  42.             android:hint="在此輸入搜尋字" />

  43.         <ImageButton
  44.             android:id="@+id/imageButton1"
  45.             android:layout_width="50dp"
  46.             android:layout_height="wrap_content"
  47.             android:src="@android:drawable/ic_menu_search" /></LinearLayout>
  48. </LinearLayout>
複製代碼

相關顯示


[attach]1034[/attach]


重點是 ListView 的 height 不能採用MATCH_PARENT , 因為MATCH_PARENT
會令ListView 佔用了它 parent 的所有空間, 因此從底部彈出的軟鍵盤會蓋過EditText, 我們可以隨意在 height 設定一個數字, 例如10dip, 我們不會担心ListView 顯示高度真的是10dip, 因為我們把它的 weight  設定為1, 它便會佔用所有畫面多出來的空間.

weight 主要是控制物件如何佔用多出來的空間, 我們不想包含著editText1及imageButton1的 linearLayout2, 擴張去佔用空間, 需要把weight 設定為 0. 而而我們想 ListView 佔用多出來的空間, 因此把 weight 設定為 1.





歡迎光臨 How2Do (http://forum.how2do.com.hk/) Powered by Discuz! 7.2