Android: ScrollView scrollt nicht bei gedrückter Tastatur

Lesezeit: 3 Minuten

Ich habe ein Layout mit einigen Ansichten, von denen eine ein EditText ist. Das Layout passt problemlos auf eine Seite, ABER wenn die Software-Tastatur ausgeschaltet ist, scrollt das Layout nicht. Hier ist eine Zusammenfassung meines Layouts:

<?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>

Und in meinem Manifest habe ich das Attribut deklariert:

android:windowSoftInputMode="adjustResize|stateHidden"

Weiß jemand, warum es nicht funktioniert und wie man sicherstellt, dass es funktioniert?

Danke im Voraus!

  • für Android 5, sehen Sie sich diesen verwandten Beitrag an: Android – Bildlaufansicht anpassen, wenn Tastatur aktiv ist für Android 5.0 (Lollipop)

    – Richard Le Mesurier

    27. November 2015 um 7:49 Uhr

Benutzer-Avatar
Ciprian

Ich hatte das gleiche Problem und habe meine Aktivität im Manifest überprüft, und der Grund, warum es nicht funktioniert hat, ist, dass ich diese Eigenschaft nicht verwendet habe:

android:windowSoftInputMode="adjustResize"

Jetzt funktioniert es großartig und es müssen keine zusätzlichen Anker mehr gemacht werden.

Okay, anscheinend die ScrollViews android:layout_height darf nicht eingestellt werden wrap_content. Ich habe es eingestellt match_parent und setze die android:layout_above auf die Schaltfläche unten auf der Seite.

Frag mich nicht warum, aber das hat das Problem behoben.

  • layout_above welche Ansicht Sie am unteren Bildschirmrand haben möchten

    – Xander

    10. Juli 2015 um 20:56 Uhr

  • Was ist, wenn unten keine feste Ansicht vorhanden ist?

    – Nguyen Minh Binh

    4. Januar 2017 um 4:01 Uhr

  • Funktioniert nicht, wenn die ScrollView nur einen Teil des Bildschirms einnimmt. Wenn Sie am Ende Ihrer Aktivität ein Layout haben, das sich wie eine Fußzeile verhält, funktioniert diese Lösung nicht.

    – Johannes

    15. Juni 2019 um 9:58 Uhr

In meinem Fall hat nichts von dem oben Gesagten funktioniert.

ich hatte item name="android:windowTranslucentStatus">true</item> in meinem thema. Und es wurde durch Einstellung behoben android:fitsSystemWindows="true" im übergeordneten layout wo ist meine scrollview.

Benutzer-Avatar
Rajesh Hegde

Hinzufügen android:windowSoftInputMode="stateHidden|adjustResize" zu Ihrem Tag in der Datei AndroidManifest.xml hinzufügen. Dies bewirkt, dass die Größe des Bildschirms nach dem linken Leerzeichen geändert wird, nachdem die Soft-Tastatur angezeigt wird. So können Sie bequem scrollen.

In meinem Fall funktioniert keine der oben genannten Lösungen, bis ich LÖSCHEN

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

In meiner Aktivität verwende ich diesen Code, um eine Vollbildanzeige zu erhalten. Versuchen Sie möglicherweise in bestimmten Fällen, alle Einstellungen des Vollbildmodus zu entfernen, damit eine der oben genannten Lösungen funktioniert.

  • Danke, Ihre Lösung hat mir geholfen, ich hatte ein ähnliches Problem, aber ich habe Vollbild in styles.xml hinzugefügt

    – Manohar

    27. Januar 2020 um 5:26 Uhr

Benutzer-Avatar
AgentP

Wenn Ihr erstes Fragment einwandfrei gescrollt hat und das zweite Fragment nicht gescrollt hat, sollten Sie das zweite Fragment ersetzen und die folgenden Schritte ausführen

1.In ScrollView hinzufügen

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

2. Manifest hinzufügen

android:windowSoftInputMode="adjustResize|stateVisible"

Wenn Sie ein Fragment hinzufügen, ist mein Vorschlag, dass Sie das Fragment ersetzen müssen

  • Danke, Ihre Lösung hat mir geholfen, ich hatte ein ähnliches Problem, aber ich habe Vollbild in styles.xml hinzugefügt

    – Manohar

    27. Januar 2020 um 5:26 Uhr

Benutzer-Avatar
Manohar

In meinem Fall musste ich Entfernen die folgende Eigenschaft aus meinem Stil, damit es funktioniert.

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

  • Funktioniert wie erwartet, Danke.

    – ZakariaBK

    2. Februar 2020 um 9:29 Uhr

1158330cookie-checkAndroid: ScrollView scrollt nicht bei gedrückter Tastatur

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy