当软键盘可见时,edittext隐藏在标题栏后面

时间:2014-07-02 06:43:47

标签: android android-xml android-softkeyboard

谷歌搜索了很多,但找不到令人满意的解决方案。下面的屏幕截图描述了我面临的问题。

enter image description here

当软键盘可见时,

Edittext隐藏在标题栏后面。我已经把

android:gravity="center_vertical" 

主要布局中的属性。如果我删除这个属性然后布局工作正常。但设计要求需要表格在中心。我已经尝试了一切。使用scrollview并将其放入清单

android:windowSoftInputMode="stateVisible|adjustResize"

还试过" adjustPan"它确实有效。但在这种情况下,整个表格不会被推高。编辑文本' MobileNo'并且按钮隐藏在软键盘后面。

布局xml代码:

<?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:orientation="vertical" 
android:gravity="center_vertical"
android:padding="5dp">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="324dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="#39CCCCCC"
        android:orientation="vertical"
       android:isScrollContainer="true"
        android:padding="5dp" 
        >

     <EditText android:id="@+id/edit_name"
        android:layout_width="match_parent"
        android:layout_height="@dimen/edittext_dimen"
        android:hint="@string/register_name"
        android:textColor="@color/black"
        android:textSize="20sp"
android:background="@drawable/rounded_edittext_bg"   
         android:layout_marginRight="5dp"
     android:layout_marginLeft="5dp"
        android:layout_marginTop="20dp"
        android:padding="5dp"
        android:inputType="textPersonName"/>

 <EditText android:id="@+id/edit_email"
        android:layout_width="match_parent"
        android:layout_height="@dimen/edittext_dimen"
        android:hint="@string/register_emailid"
        android:textColor="@color/black"
        android:textSize="20sp"
android:background="@drawable/rounded_edittext_bg"   
         android:layout_marginRight="5dp"
     android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:padding="5dp"
       android:inputType="textEmailAddress" />

 <EditText android:id="@+id/edit_password"
        android:layout_width="match_parent"
        android:layout_height="@dimen/edittext_dimen"
        android:hint="@string/register_pass_hint"
        android:textColor="@color/black"
        android:textSize="20sp"
android:background="@drawable/rounded_edittext_bg"   
         android:layout_marginRight="5dp"
     android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:padding="5dp"
       android:inputType="textPassword" />

 <EditText android:id="@+id/edit_confpassword"
        android:layout_width="match_parent"
        android:layout_height="@dimen/edittext_dimen"
        android:hint="@string/register_confpass"
        android:textColor="@color/black"
        android:textSize="20sp"
android:background="@drawable/rounded_edittext_bg"   
         android:layout_marginRight="5dp"
     android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:padding="5dp"
       android:inputType="textPassword" />

 <EditText android:id="@+id/edit_mobile"
        android:layout_width="match_parent"
        android:layout_height="@dimen/edittext_dimen"
        android:hint="@string/register_mobile"
        android:textColor="@color/black"
        android:textSize="20sp"
android:background="@drawable/rounded_edittext_bg"   
         android:layout_marginRight="5dp"
     android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:padding="5dp"
        android:maxLength="11"
        android:inputType="phone"/>



 <Button android:id="@+id/signup_btn"
        android:layout_width="match_parent"
        android:layout_height="@dimen/edittext_dimen"
       android:layout_marginTop="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_gravity="center_horizontal"
        android:text="@string/register_signup"
         android:textSize="20sp"
        android:background="#3F799F"
        android:textColor="@color/white"/>
 </LinearLayout>
</LinearLayout>

这有什么解决方案吗?任何可以帮助我实现目标的解决方法?请回复你的意见和建议。

如果你无法理解我的怀疑。请随意问。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

我解释你的错误。您已经将线性布局高度设置为324dp。因此,当键盘打开线性布局需要在屏幕中有足够的空间时,它会上升并且不可见您的第一个edittext。

改为使用相对布局。

等一下,我给你修改了XML的变化。直到时间检查你的xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:orientation="vertical"
android:padding="5dp" >

<LinearLayout
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="#39CCCCCC"
    android:isScrollContainer="true"
    android:orientation="vertical"
    android:padding="5dp" >

    <EditText
        android:id="@+id/edit_name"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="20dp"
        android:hint="Name"
        android:inputType="textPersonName"
        android:padding="5dp"
        android:textColor="#000"
        android:textSize="20sp" />

    <EditText
        android:id="@+id/edit_email"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:hint="Email"
        android:inputType="textEmailAddress"
        android:padding="5dp"
        android:textColor="#000"
        android:textSize="20sp" />

    <EditText
        android:id="@+id/edit_password"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:hint="password"
        android:inputType="textPassword"
        android:padding="5dp"
        android:textColor="#000"
        android:textSize="20sp" />

    <EditText
        android:id="@+id/edit_confpassword"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:hint="Confirm password"
        android:inputType="textPassword"
        android:padding="5dp"
        android:textColor="#000"
        android:textSize="20sp" />

    <EditText
        android:id="@+id/edit_mobile"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:hint="register"
        android:inputType="phone"
        android:maxLength="11"
        android:padding="5dp"
        android:textColor="#000"
        android:textSize="20sp" />

    <Button
        android:id="@+id/signup_btn"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:background="#3F799F"
        android:text="signup"
        android:textColor="#fff"
        android:textSize="20sp" />
</LinearLayout>

</RelativeLayout> 
清单中的

活动标记写下此android:windowSoftInputMode="adjustResize|adjustPan"

我改变你的尺寸,大小,颜色也是字符串resourch

答案 1 :(得分:1)

adjustPan代码

下的清单中添加activity
android:windowSoftInputMode="adjustResize|adjustPan"