how to make an android view scrollable when the keyboard appears?

34,523

Solution 1

You need to include android:windowSoftInputMode="adjustResize" attribute for your activity in the AndroidManifest.xml file - and then Android should do the resizing for you automatically:

<activity android:name="..."
          ...
          android:windowSoftInputMode="adjustResize">
    ...
/>

Solution 2

I have created simple xml file.

step 1. you can scroll when key-pad is appeared.

step 2. when you click on Text-Field it will come on Focus/above keypad.

<ScrollView android:id="@+id/ScrollView01"
xmlns:android="http://schemas.android.com/apk/res/android"
android:fillViewport="true" 
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout 
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:weightSum="1.0" 
    android:layout_height="match_parent"
    android:focusable="true"
    android:focusableInTouchMode="true" 
    android:id="@+id/l_layout">
    <EditText 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/editText1" 
        android:layout_marginTop="100dp">
        <requestFocus></requestFocus>
    </EditText>
    <EditText 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:id="@+id/editText2" 
        android:layout_marginTop="100dp">
        </EditText>
    </LinearLayout> 
</ScrollView>
Share:
34,523
Alexis
Author by

Alexis

Senior #iOS Developer, #Swift lover, owner at firstsecond.eu, Android, software, geek, tech enthusiast, Star Wars, cashew nuts &amp; dinosaurus cookies

Updated on November 06, 2021

Comments

  • Alexis
    Alexis over 2 years

    I have a view with some fields (name, email, password, register button) :

    <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
        <ViewFlipper
            android:id="@+id/viewflipper"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
    
            //Layouts
    
        </ViewFlipper>
    
    </ScrollView>
    

    When I focus an edittext field, the keyboard appears and is overlaying the lower fields on the view. So I can't see them when the keyboard is present. I would like to know how to make the view scrollable so that I can see the lower fields. And additionally, how to make the view scroll automatically to make the focused field visible.

  • Alexis
    Alexis almost 12 years
    Actually it was set to "adjustPan|adjustResize". Removing the adjustPan made it work. Thanks!
  • AlexBrand
    AlexBrand over 10 years
    I was having a problem with a scrollview and fillViewport is just what I needed.