2011-06-01 139 views
2

我使用Eclipse ADT開發Android應用程序。當焦點超過EditText(頁面下端)時,小鍵盤會覆蓋EditText,所以當我鍵入文本時,我看不到鍵入的內容。我有什麼選擇?軟鍵盤來自EditText

索引活動的佈局

<?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:background="#a8e8f0" android:orientation="vertical" android:id="@+id/layout"> 
    <LinearLayout android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/welcome_background"> 
     <include layout="@layout/top"></include> 
     <RelativeLayout android:layout_height="wrap_content" 
      android:layout_width="fill_parent" android:gravity="center"> 
      <LinearLayout android:layout_width="270dp" 
       android:orientation="vertical" android:layout_height="wrap_content" 
       android:id="@+id/body"> 
       <ImageView android:layout_width="wrap_content" android:src="@drawable/welcome_title" android:layout_height="wrap_content" android:id="@+id/title" style="@style/Theme.Connector.ImageElement"></ImageView> 
       <TextView android:text="@string/welcome_text" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/txt_welcome" style="@style/Theme.Connector.FormText"></TextView> 
       <Spinner android:layout_width="fill_parent" 
        android:layout_height="wrap_content" style="@style/Theme.Connector.WelcomeSpinner" 
        android:layout_weight="1" android:id="@+id/spinner_isp" /> 
       <EditText android:layout_height="wrap_content" android:singleLine="true" 
        style="@style/Theme.Connector.WelcomeInput" android:hint="@string/txt_user" 
        android:layout_width="fill_parent" android:id="@+id/edit_user"></EditText> 
       <EditText android:layout_alignParentLeft="true" android:singleLine="true" 
        android:layout_height="wrap_content" style="@style/Theme.Connector.WelcomeInput" 
        android:hint="@string/txt_password" android:layout_width="fill_parent" 
        android:password="true" android:id="@+id/edit_password"/> 
       <LinearLayout android:layout_width="fill_parent" 
        android:orientation="horizontal" android:layout_height="fill_parent" 
        android:id="@+id/frm_action"> 
        <Button style="@style/Theme.Connector.Button" 
         android:layout_height="wrap_content" android:layout_width="100dp" 
         android:text="@string/btn_cancel" android:layout_weight="1" 
         android:id="@+id/btn_cancel" /> 
        <Button android:text="@string/btn_continue" 
         android:layout_height="wrap_content" android:layout_width="100dp" 
         style="@style/Theme.Connector.ButtonContinue" 
         android:layout_weight="1" android:id="@+id/btn_continue"></Button> 
       </LinearLayout> 
      </LinearLayout> 
     </RelativeLayout> 
    </LinearLayout> 
</LinearLayout> 

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="vex.connector" android:versionCode="1" android:versionName="1.0"> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application android:icon="@drawable/icon" android:label="@string/app_name" 
     android:theme="@style/Theme.Connector"> 

     <activity android:name=".IndexActivity" android:label="@string/app_name" 
      android:screenOrientation="portrait" android:windowSoftInputMode="stateVisible|adjustPan"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <receiver android:name=".WiFiBroadcastReceiver"> 
      <intent-filter> 
       <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
      </intent-filter> 
     </receiver> 

    </application> 
</manifest> 

鍵盤

keyboard

+1

如果你設置android:windowSoftInputMode =「adjustResize」而不是adjustPan,你會發生什麼? – tarkeshwar 2011-06-01 18:09:37

+0

另外,你使用全屏風格(android:windowFullscreen)?直到今天,我也有類似的軟鍵盤重疊問題。使用adjustResize並擺脫全屏風格修復它。 – tarkeshwar 2011-06-01 18:18:58

+0

當我嘗試調整時發生同樣的情況。 ;( – 2011-06-01 18:22:06

回答

9

環繞你外LinerLayout在滾動型,例如,

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

    <!-- Your current layout here --> 

</ScrollView> 

這應該允許滾動佈局看下部的EditText

+5

)提示:如果視圖在使用'ScrollView'後沒有填滿整個屏幕,請添加:android:fillViewport =「true」'。 – 2012-11-12 10:42:59

+0

@NickStemerdink謝謝,這幫了我不知道爲什麼layout_height:「fill_parent」是對於scrollview來說還不夠 – hendrix 2012-11-26 13:24:38

1

我有相同的問題,我發現tarkeshwar的做法更好。

如果你設置android:windowSoftInputMode =「adjustResize」而不是adjustPan,你現在會發生什麼?此外,你使用全屏風格(android:windowFullscreen)?直到今天,我也有類似的軟鍵盤重疊問題。使用adjustResize並擺脫全屏風格修復它。

tarkeshwar

1

如果沒有回答這些問題有助於確保你的風格不設置這個屬性:

<item name="android:windowTranslucentStatus">true</item> 

如果是這樣,覆蓋樣式您的活動。