Android: ScrollView not scrolling with keyboard out

JavaAndroidAndroid LayoutAndroid SoftkeyboardAndroid Scrollview

Java Problem Overview


I've got a layout with some views, from which one is an EditText. The layout easily fits on one page, BUT, when the soft keyboard is out, the layout doesn't scroll. Here's a recap of my layout:

<?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:background="@drawable/background" >

    <ScrollView
        android:id="@+id/ScrollView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <CheckBox/>

            <TextView/>

            <LinearLayout>
                <EditText>
                    <requestFocus />
                </EditText>
            </LinearLayout>

            <TextView/>

            <LinearLayout>
                <Spinner/>
            </LinearLayout>

        </LinearLayout>

    </ScrollView>

    <Button
        android:layout_alignParentBottom="true" />

</RelativeLayout>

And in my manifest I have declared the attribute:

android:windowSoftInputMode="adjustResize|stateHidden"

Does anyone know why it doesn't work and how to make sure it does work?

Thanks in advance!

Java Solutions


Solution 1 - Java

I had the same problem and I checked my activity in the manifest, and the reason why it wasn't working is because I didn't use this property:

android:windowSoftInputMode="adjustResize"

Now it works great and no need to do additional anchors.

Solution 2 - Java

Okay, apparently the ScrollView's android:layout_height mustn't be set to wrap_content. I set it to match_parent and set the android:layout_above to the button on the bottom of the page.

Don't ask me why, but this fixed the issue.

Solution 3 - Java

In my case, nothing of the above worked.

I had item name="android:windowTranslucentStatus">true</item> in my theme. And it was fixed by setting android:fitsSystemWindows="true" in the parent layout where is my scrollview.

Solution 4 - Java

Add android:windowSoftInputMode="stateHidden|adjustResize" to your tag in AndroidManifest.xml file. This will cause the screen to be resized to the left over space after the soft keyboard is shown. So, you will be able to scroll easily.

Solution 5 - Java

In my case any of the solution above does not work until I REMOVE

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

in my activity, I use that code to get a full screen display. Maybe for certain cases, try to remove any setup of full screen to make any of the above solution works.

Solution 6 - Java

If your First Fragment Scroll perfectly and the second fragment did not scroll then you should use the second fragment replace and do below things

1.Add in ScrollView

android:fillViewport="true"
android:fitsSystemWindows="true"

2.Add in Manifest

android:windowSoftInputMode="adjustResize|stateVisible"

If you add fragment then my suggestion is you need to Replace the Fragment

Solution 7 - Java

In my case I had to Remove the following property from my style to make it work .

<item name="android:windowFullscreen">true</item>

Solution 8 - Java

My problem was with a HorizontalScrollView. In my case I had to set HorizontalScrollView to:

android:layout_width="match_parent"
android:layout_height="match_parent"

And remove:

 android:layout_above="@+id/closeButton"
 android:layout_below="@+id/logo"

In the AndroidManifest.xml the activity is set to:

android:windowSoftInputMode=""

I hope this helps anyone comming across this weird bug.

Solution 9 - Java

In my case, what solved this was setting a missing constraint in the Bottom. My ScrollView had top, right, and left constraints, but no bottom one. After restricting it from all sides, it started to overlap the above textview, which prompted me to try putting the height to 0dp, and that seemed to solve the problem.

Solution 10 - Java

Try to set ScrollView as your parent layout. It works like charm for me!

Solution 11 - Java

<activity 
    android:windowSoftInputMode="adjustResize"
>

try this In android manifest ..

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionXanderView Question on Stackoverflow
Solution 1 - JavaCiprianView Answer on Stackoverflow
Solution 2 - JavaXanderView Answer on Stackoverflow
Solution 3 - Javagiorgos.nlView Answer on Stackoverflow
Solution 4 - JavaRajesh HegdeView Answer on Stackoverflow
Solution 5 - JavaNur Hidayah RosleeView Answer on Stackoverflow
Solution 6 - JavaJeetesh SuranaView Answer on Stackoverflow
Solution 7 - JavaManoharView Answer on Stackoverflow
Solution 8 - JavagtsoukView Answer on Stackoverflow
Solution 9 - JavasbenatiView Answer on Stackoverflow
Solution 10 - JavaMartino ChristantoView Answer on Stackoverflow
Solution 11 - JavaSufi Ammar SahbView Answer on Stackoverflow