将布局移到软键盘上方

时间:2013-02-21 13:08:20

标签: android android-layout android-softkeyboard

我试图谷歌我的问题,但找不到任何可以帮助我的东西,或者我只是不明白。 我想在打开时将一些控件移到软键盘上方,这是可能的。具体来说,我想将所有内容移到login_btnLogin之上,当弹出软键盘时也包括此按钮。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:padding="10dp" >

<ImageView
    android:id="@+id/login_img_logo"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginBottom="40dp"
    android:layout_marginTop="30dp"
    android:contentDescription="@string/app_name"
    android:scaleType="center"
    android:src="@drawable/logo" >
</ImageView>

<RelativeLayout
    android:id="@+id/login_loginLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/login_img_logo"
    android:background="@drawable/rounded_edittext_with_gray_borderline"
    android:paddingBottom="5dp" >

    <EditText
        android:id="@+id/login_txt_username"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:background="@drawable/rounded_edittext_without_borderline"
        android:ems="10"
        android:gravity="center_vertical"
        android:hint="@string/register_username"
        android:inputType="text"
        android:textColor="@android:color/black" >

    </EditText>

    <View
        android:id="@+id/login_separator"
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:layout_below="@+id/login_txt_username"
        android:background="@android:color/darker_gray" />

    <EditText
        android:id="@+id/login_txt_password"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/login_txt_username"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignRight="@+id/login_txt_username"
        android:layout_below="@+id/login_separator"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:background="@drawable/rounded_edittext_without_borderline"
        android:gravity="center_vertical"
        android:hint="@string/register_password"
        android:inputType="textPassword"
        android:textColor="@android:color/black" >

    </EditText>
</RelativeLayout>

<LinearLayout
    android:id="@+id/login_buttonslayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/login_loginLayout"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="15dp"
    android:gravity="center_horizontal" >

    <Button
        android:id="@+id/login_btnLogin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:background="@drawable/button"
        android:gravity="center"
        android:text="@string/login"
        android:textColor="#000000"
        android:textSize="20sp"
        android:textStyle="bold" 
        />


</LinearLayout>

<RelativeLayout
    android:id="@+id/login_bottom_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/login_buttonslayout"
    android:layout_marginBottom="10dp"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/login_txt_forgot_password"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="10dp"
        android:gravity="center_horizontal"
        android:text="@string/forgotPassword"
        android:textColor="@android:color/background_dark"
        android:textSize="15sp"
        android:textStyle="bold" >

    </TextView>

    <Button
        android:id="@+id/login_btn_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@string/forgotPassword"
        android:background="@drawable/info"
        android:textAppearance="?android:attr/textAppearanceSmallInverse"
        android:textColor="@android:color/primary_text_light" />

</RelativeLayout>

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

使用此

在Manifest.xml中:

android:configChanges="keyboardHidden|orientation"

android:windowSoftInputMode="adjustPan"

让我知道使用这两个对你有帮助还是在你的虚拟键盘创建问题的布局中使用scrollview它也有点帮助

答案 1 :(得分:0)

尝试使用此功能:这适用于所有设备。

android:configChanges="orientation|screenSize|keyboardHidden"

然后你仍然遇到问题,然后尝试在清单文件中添加它

android:windowSoftInputMode="stateAlwaysHidden"

尝试将您的EditText重点放在第一时间,以便解决布局问题。