2014-04-10 138 views
0

此問題可能與thisthis類似,但它們不能解決我的問題。我有一個登錄界面,它看起來像這樣:軟鍵盤覆蓋密碼EditText字段

enter image description here

當我點擊用戶名欄中,就變成這樣:

enter image description here

正如你可以在這裏看到,密碼字段由軟鍵盤覆蓋,輸入用戶名後,必須先關閉軟鍵盤,然後單擊密碼字段鍵入密碼,這不方便用戶使用。如何避免軟鍵盤覆蓋的密碼字段,以便用戶可以直接輸入密碼。以下是此用戶界面的佈局。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="eda397.group10.navigator.MainActivity$PlaceholderFragment" > 

<ImageView 
    android:id="@+id/logo" 
    android:layout_width="125dp" 
    android:layout_height="125dp" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:layout_marginTop="24dp" 
    android:src="@drawable/ic_launcher" /> 


<Button 
    android:id="@+id/register_button" 
    android:layout_width="85dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignRight="@+id/login_username" 
    android:layout_marginBottom="65dp" 
    style="@style/CustomStyleButton" 
    android:text="@string/button_register" /> 

<EditText 
    android:id="@+id/login_username" 
    android:layout_width="wrap_content" 
    android:layout_height="30dp" 
    android:layout_alignLeft="@+id/login_password" 
    android:layout_alignRight="@+id/login_password" 
    android:layout_centerVertical="true" 
    android:background="#d8d8d8" 
    android:ems="10" 
    android:hint="@string/username_message" > 

</EditText> 

<EditText 
    android:id="@+id/login_password" 
    android:layout_width="wrap_content" 
    android:layout_height="30dp" 
    android:layout_below="@+id/login_username" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="17dp" 
    android:background="#d8d8d8" 
    android:ems="10" 
    android:hint="@string/password_message" 
    android:inputType="textPassword" /> 

<Button 
    android:id="@+id/login_button" 
    android:layout_width="85dp" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/register_button" 
    android:layout_alignBottom="@+id/register_button" 
    android:layout_alignLeft="@+id/login_username" 
    style="@style/CustomStyleButton" 
    android:text="@string/button_send" /> 

</RelativeLayout> 

回答

0

在AndroidManifest.xml後,您的活動宣言,​​你需要設置如下windowSoftInputMode:如您使用的是相對佈局

<activity 
    android:name="..." 
    android:windowSoftInputMode="adjustResize"> 
</activity> 

這種解決方案可能無法正常工作。您可以考慮改爲線性佈局和使用windowSoftInputMode或者你可以嘗試改變你的佈局重心那樣:

<RelativeLayout 
    ... 
    android:layout_gravity="bottom" > 
0

如果你只是想很容易讓用戶從用戶名到密碼字段,您可以添加到imeOptions login_username:

<EditText 
    android:id="@+id/login_username" 
    android:layout_width="wrap_content" 
    android:layout_height="30dp" 
    android:layout_alignLeft="@+id/login_password" 
    android:layout_alignRight="@+id/login_password" 
    android:layout_centerVertical="true" 
    android:background="#d8d8d8" 
    android:ems="10" 
    android:hint="@string/username_message" 
    android:imeOptions="actionNext" > 

這不會更改覆蓋屏幕鍵盤,但如果你想解決這個問題,你在你的問題中提到的答案應該已經足夠了。