2011-06-01 103 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> 

如果是这样,覆盖样式您的活动。