Let say I have the following layout:
when I click on the edit text at the bottom I get this:
As you can notice the image from the top goes upper and the whole layout moves. This is my xml for this layout:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFFFFF" > <LinearLayout android:id="@+id/header" android:layout_width="fill_parent" android:layout_height="75dp" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:isScrollContainer="true" android:background="@drawable/header" > </LinearLayout> <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/scrollauthentication" android:layout_below="@+id/header" android:background="#FFFFFF" android:fillViewport="true" > <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#FFFFFF" android:id="@+id/authenticationrelativelayout"> <TextView android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/header" android:layout_marginLeft="30dp" android:layout_marginTop="20dp" android:text="login" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/lighter_orange" android:textSize="28dp" /> <TextView android:id="@+id/usernameTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/login" android:layout_below="@+id/login" android:layout_marginTop="16dp" android:text="username" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/dark_gray" /> <EditText android:id="@+id/user" android:layout_width="260dp" android:layout_height="42dp" android:layout_alignLeft="@+id/usernameTextView" android:layout_below="@+id/usernameTextView" android:background="@drawable/edittext_selector" android:imeOptions="actionDone" android:lines="1" android:paddingLeft="10dp" /> <TextView android:id="@+id/passwordTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/user" android:layout_below="@+id/user" android:text="password" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/dark_gray" /> <EditText android:id="@+id/password" android:layout_width="260dp" android:layout_height="42dp" android:layout_alignLeft="@+id/passwordTextView" android:layout_below="@+id/passwordTextView" android:background="@drawable/edittext_selector" android:imeOptions="actionDone" android:inputType="textPassword" android:lines="1" android:paddingLeft="10dp" > <requestFocus /> </EditText> <CheckBox android:id="@+id/remembercheckBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/password" android:layout_below="@+id/password" android:layout_marginTop="37dp" android:button="@drawable/checkbox_selector" android:focusable="true" /> <TextView android:id="@+id/rememberText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/remembercheckBox" android:layout_alignBottom="@+id/remembercheckBox" android:layout_toRightOf="@+id/remembercheckBox" android:text="Remember me" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/dark_gray" /> </RelativeLayout> </ScrollView> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_below="@+id/scrollauthentication" android:orientation="horizontal" > <Button android:id="@+id/loginButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@color/button_selected" android:text="log in" android:textColor="@drawable/textblack_selected" android:textStyle="bold" > </Button> <Button android:id="@+id/forgotten" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:background="@color/button_selected" android:text="forgotten password" android:textColor="@drawable/textblack_selected" android:textStyle="bold" /> </LinearLayout> </RelativeLayout>
And I have also set this in manifest file for this activity:
android:windowSoftInputMode="adjustPan"
So is there a way to stop my layout from moving when the keyboard is displayed? Thank you!!!!
Android provides no direct way to determine if the keyboard is open, so we have to get a little creative. The View class has a handy method called getWindowVisibleDisplayFrame from which we can retrieve a rectangle which contains the portion of the view visible to the user.
try this android:windowSoftInputMode="adjustResize" in your activity in manifest file.
Try using
android:windowSoftInputMode="adjustPan|adjustResize"
for the activity.
well, I have not mentioned any "windowSoftInputMode" in my app's manifest and it runs fine. Screen does not move up when the keyboard opens up. Try this approach - just remove the "windowSoftInputMode" parameter from your manifest .
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With