如何在显示键盘时调整布局大小

时间:2014-10-20 06:43:19

标签: java android

当键盘弹出时,布局是不可见的。我已经尝试了很多例子。但是它不能正常工作。任何帮助都会受到赞赏。谢谢。我的manifest.xml文件是

       <activity
        android:name=".activity.SignUp"
        android:windowSoftInputMode="stateVisible|adjustResize"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:screenOrientation="portrait"
        />
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

我的布局文件是

    <?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:fitsSystemWindows="true"
android:focusableInTouchMode="false"
android:orientation="vertical">


<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="40dp"
    android:src="@drawable/userprofile" />

<EditText
    android:id="@+id/editText"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginBottom="-10dp"
    android:layout_marginLeft="80dp"
    android:hint="USERNAME"
    android:inputType="textPersonName"
     />

<ImageView
    android:id="@+id/imageView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editText"
    android:layout_marginLeft="39dp"
    android:layout_marginTop="30dp"
    android:src="@drawable/email" />

<EditText
    android:id="@+id/editText2"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/imageView3"
    android:layout_alignLeft="@+id/editText"
    android:layout_alignStart="@+id/editText"
    android:hint="ENTER EMAIL"
    android:inputType="textEmailAddress"
    />

<ImageView
    android:id="@+id/imageView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/imageView3"
    android:layout_marginLeft="39dp"
    android:layout_marginTop="20dp"
    android:src="@drawable/passunlock" />

<EditText
    android:id="@+id/editText3"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/imageView4"
    android:layout_marginLeft="80dp"
    android:layout_marginTop="-15dp"
    android:hint="ENTER PASSWORD"
    android:inputType="textPassword"
    android:text="password" />

<ImageView
    android:id="@+id/imageView5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/imageView6"
    android:layout_alignLeft="@+id/imageView4"
    android:layout_alignStart="@+id/imageView4"
    android:src="@drawable/password" />

<EditText
    android:id="@+id/editText4"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editText3"
    android:layout_marginLeft="80dp"
    android:layout_marginTop="10dp"
    android:hint="RETYPE PASSWORD"
    android:inputType="textPassword"
    android:text="password" />

<ImageView
    android:id="@+id/imageView6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editText4"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="39dp"
    android:src="@drawable/signup" />

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/imageView6"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp"
    android:text="SIGN UP"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="@android:color/white" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginRight="-14dp"
    android:layout_toLeftOf="@+id/imageView6"
    android:layout_toStartOf="@+id/imageView6"
    android:src="@drawable/username" />

2 个答案:

答案 0 :(得分:1)

将Window SoftInput Mode属性设置为adjustPan和adjustResize

<activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>  OR
<activity android:windowSoftInputMode="adjustResize"> </activity>  OR
<activity android:windowSoftInputMode="adjustPan"> </activity>

如果以上任何内容无效,请在onCreate()方法中使用以下代码:

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

答案 1 :(得分:0)

以下链接可能对您有所帮助

https://developer.android.com/training/keyboard-input/visibility.html

如果adjustResize不起作用,请尝试将ScrollView添加为父布局。