键盘显示时,Android EditText无法对焦

时间:2012-06-15 11:17:41

标签: android android-layout android-edittext android-softkeyboard

我在EditText上遇到问题。当软键盘显示时,我无法显示所有EditText字段,如下图所示:

Screenshot

以下是我的布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="15dip"
    android:focusable="true" >
    <TextView
        android:id="@+id/password_listing"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:text="@string/new_service"
        android:textSize="20dip"
        android:textStyle="bold"
        android:padding="10dip" />
    <RelativeLayout
        android:id="@+id/l_service_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center_vertical" >
    <TextView
        android:id="@+id/service_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:text="@string/service_name"
        android:textSize="15dip"
        android:textStyle="bold" />
    <EditText
        android:id="@+id/servicename"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:gravity="center_vertical|center_horizontal"
        android:hint=""
        android:singleLine="true"
        android:focusable="true" />
</RelativeLayout>
<RelativeLayout
        android:id="@+id/l_username"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center_vertical" >
    <TextView
        android:id="@+id/user_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:text="@string/username"
        android:textSize="15dip"
        android:textStyle="bold" />
    <EditText
        android:id="@+id/username"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:gravity="center_vertical|center_horizontal"
        android:hint=""
        android:singleLine="true"
        android:focusable="true" />     
</RelativeLayout>
<RelativeLayout
        android:id="@+id/l_pwd"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center_vertical" >
    <TextView
        android:id="@+id/pwdset"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:text="@string/pwd_txt"
        android:textSize="15dip"
        android:textStyle="bold" />
    <EditText
        android:id="@+id/pwd_set"
        android:layout_width="180dip"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:gravity="center_vertical|center_horizontal"
        android:hint=""
        android:inputType="textPassword"
        android:isScrollContainer="true"
        android:focusable="true" /> 
</RelativeLayout>
<LinearLayout 
        android:id="@+id/layout_3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center_vertical|center_horizontal" >
    <TextView 
        android:id="@+id/selectmsg_txt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:text="@string/selectmsg"
        android:textSize="15dip"
        android:textStyle="bold" />
    <GridView 
        android:id="@+id/app_grid"
        android:layout_width="match_parent" 
        android:layout_height="150dp"
        android:padding="10dp"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:numColumns="auto_fit"
        android:columnWidth="60dp"
        android:stretchMode="columnWidth"
        android:gravity="center" />
    <Button
        android:id="@+id/b_addpwd"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:text="@string/add"
        android:background="@android:color/transparent"
        android:drawableLeft="@drawable/ic_add"
        android:textColor="@android:color/white"
        android:textSize="20dip" />
    </LinearLayout>   
</LinearLayout>

因为我想在我输入此活动时自动隐藏软键盘,所以我将其添加到我的活动中:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

我的布局xml有什么问题?

3 个答案:

答案 0 :(得分:0)

使用滚动视图,并在清单文件的活动代码中添加以下内容:

          android:windowSoftInputMode="adjustPan"

答案 1 :(得分:0)

在清单文件中使用以下代码段:

      android:windowSoftInputMode="adjustResize|adjustPan"

答案 2 :(得分:0)

这对我有什么帮助:

EditText et = new EditText(); //or whatever way you use to fetch the object
et.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);   

希望它能帮助你