How to scroll my entire layout when the keyboard appears?
10,436
Try to change your Keyboard to pan instead of resize. You could do that in your AndroidManifest.xml file, for your particular Activity
, add the below to it
android:windowSoftInputMode="adjustPan"
or
If you want to hide then:
EditText editTextSearch = (EditText) findViewById(R.id.editTextSearch);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextSearch.getWindowToken(), 0);
If want to show:
EditText editTextSearch = (EditText) findViewById(R.id.editTextSearch);
editTextSearch.requestFocus();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
Comments
-
androidevil almost 2 years
This is my layout:
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scroll_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/defaut_padding" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/defaut_padding" android:orientation="vertical" > <FrameLayout android:id="@+id/photo" android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/picture" android:layout_width="match_parent" android:layout_height="wrap_content" android:scaleType="fitXY" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_margin="10dp" android:background="@drawable/watermark" /> <ProgressBar android:id="@+id/bitmap_loading" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:visibility="visible" /> </FrameLayout> <FrameLayout android:id="@+id/user" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/photo" android:layout_marginLeft="15dp" android:layout_marginTop="-30dp" android:background="@android:color/white" android:padding="@dimen/smallest_padding" > <ImageView android:id="@+id/user_picture" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/anonymous_user" /> </FrameLayout> <TextView android:id="@+id/user_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@id/user" android:layout_marginLeft="@dimen/defaut_padding" android:layout_toRightOf="@id/user" android:text="@string/anonymous_user" android:textStyle="bold" /> </RelativeLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/input_description" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="top" android:padding="5dp" android:layout_marginBottom="@dimen/defaut_padding" android:background="@drawable/textfield" android:hint="@string/description_hint" android:focusableInTouchMode="true" android:maxLines="3" android:scrollbars="vertical" /> <Button android:id="@+id/publish" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/confirm_button_selector" android:text="@string/confirm_button" android:textColor="@android:color/white" android:textSize="@dimen/big_text_size" android:textStyle="bold" /> </FrameLayout> </LinearLayout> </ScrollView>
I want to scroll it when the soft keyboard appears when I start to digit at the EditText. How can I do this? Currenty the scroll works, but the keyboard appears above the button, and I want the button above the keyboard
I've tried to move the scrool when the user clicks in the EditText, doing something like this:
mSv.scrollTo(0, mSv.getBottom());
where mSv is my ScrollView
But it only works when the user clicks in the EditText at the second time.
Thank you for any help.