Search code examples
androidandroid-layoutandroid-softkeyboard

How to adjust layout when soft keyboard appears


I would like to adjust/re-size the layout when the soft-keyboard activated, as below:

Before and After:

enter image description hereenter image description here


Found couple resources in SO:

  1. How to keep all fields and texts visible while the soft keyboard is shown
  2. android soft keyboard spoils layout when appears
  3. Adjust layout when soft keyboard is on

But the questions & answers are rather ambiguous, here's the question with clearer picture of what I want.

Requirements:

  • It should work on phone with any screen sizes.
  • Noticed that the margin/padding space at "FACEBOOK" and "Sign Up for Facebook" has changed before and after.
  • No scroll view is involved.

Solution

  • Just add

    android:windowSoftInputMode="adjustResize"
    

    in your AndroidManifest.xml where you declare this particular activity and this will adjust the layout resize option.

    enter image description here

    some source code below for layout design

    <?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:orientation="vertical" >
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="20dp"
            android:text="FaceBook"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    
        <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView1"
            android:layout_marginTop="30dp"
            android:ems="10"
            android:hint="username" >
    
            <requestFocus />
        </EditText>
    
        <EditText
            android:id="@+id/editText2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/editText1"
            android:layout_marginTop="20dp"
            android:ems="10"
            android:hint="password" />
    
        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/editText2"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="18dp"
            android:layout_marginTop="20dp"
            android:text="Log In" />
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginTop="17dp"
            android:gravity="center"
            android:text="Sign up for facebook"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    
    </RelativeLayout>