Scrollview pushing up when android soft keyboard is shown

4.5k views Asked by At

I have an editext inside the scrollView. When editext gets focus and soft keyboard is shown, ScrollView is pushing up automatically.

I have tried

android:windowSoftInputMode="adjustResize" android:windowSoftInputMode="adjustPan"

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/sign_in_or_sign_up_bg" >

<RelativeLayout
    android:id="@+id/headerlayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:background="@drawable/headerbox_title" >

    <ImageButton
        android:id="@+id/backImgBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:background="@null"
        android:src="@drawable/backarrow" />
</RelativeLayout>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/headerlayout"
    android:fillViewport="true" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:gravity="center"
        android:orientation="vertical" >

        <ImageButton
            android:id="@+id/profilePicImgBtn"
            android:layout_width="@dimen/sign_up_profile_pic"
            android:layout_height="@dimen/sign_up_profile_pic"
            android:layout_gravity="center_horizontal"
            android:background="@null"
            android:scaleType="centerCrop"
            android:src="@drawable/attach_image" />

        <EditText
            android:id="@+id/userNameEdt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/sign_in_small_margin"
            android:background="@drawable/text_box"
            android:hint="Username"
            android:imeOptions="actionNext"
            android:padding="@dimen/edt_padding"
            android:singleLine="true"
            android:textSize="@dimen/edt_hint" />

        <EditText
            android:id="@+id/emailEdt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/sign_in_small_margin"
            android:background="@drawable/text_box"
            android:hint="Email"
            android:imeOptions="actionNext"
            android:inputType="textEmailAddress"
            android:padding="@dimen/edt_padding"
            android:singleLine="true"
            android:textSize="@dimen/edt_hint" />

        <EditText
            android:id="@+id/passwordEdt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/sign_in_small_margin"
            android:background="@drawable/text_box"
            android:hint="Password"
            android:imeOptions="actionNext"
            android:inputType="textPassword"
            android:padding="@dimen/edt_padding"
            android:singleLine="true"
            android:textSize="@dimen/edt_hint" />

        <EditText
            android:id="@+id/retypePasswordEdt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/sign_in_small_margin"
            android:background="@drawable/text_box"
            android:hint="Retype Password"
            android:imeOptions="actionDone"
            android:inputType="textPassword"
            android:padding="@dimen/edt_padding"
            android:singleLine="true"
            android:textSize="@dimen/edt_hint" />

        <ImageButton
            android:id="@+id/signUpImgBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/sign_in_large_margin"
            android:background="@null"
            android:src="@drawable/sing_up_main_btn" />
    </LinearLayout>
</ScrollView>

2

There are 2 answers

0
Vaseem Sathar On

In your oncreate add

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

Update

Try adding this to your scrollview

android:isScrollContainer="false" 
0
Ryan Clarke On

In your AndroidManifest.xml, find the correct activity and add the windowSoftInputMode setting there. adjustPan must be applied to the activity.

<activity
    android:name="com.yourpackage.YourActivity"
    android:windowSoftInputMode="adjustPan" >  <<=== THIS LINE ===
</activity>

UPDATE: Apparently this is not working since I have started receiving down votes. Maybe things have changed. I know it worked for me.