web-dev-qa-db-ja.com

Android:ScrollViewがキーボードアウトでスクロールしない

いくつかのビューを持つレイアウトがあり、そのうちの1つはEditTextです。レイアウトは1ページに簡単に収まりますが、ソフトキーボードを使用しないと、レイアウトはスクロールしません。これが私のレイアウトの要約です。

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

そして、私のマニフェストで属性を宣言しました:

Android:windowSoftInputMode="adjustResize|stateHidden"

なぜそれが機能しないのか、それが機能することを確認する方法を知っていますか?

前もって感謝します!

42
Xander

さて、明らかにScrollViewのAndroid:layout_heightwrap_contentに設定してはいけません。 match_parentに設定し、Android:layout_aboveをページ下部のボタンに設定します。

理由を聞かないでください。しかしこれで問題は解決しました。

34
Xander

私は同じ問題を抱えていて、マニフェストでアクティビティをチェックしましたが、動作しなかった理由は、このプロパティを使用しなかったためです。

Android:windowSoftInputMode="adjustResize"

今ではうまく機能し、アンカーを追加する必要はありません。

45
Ciprian

私の場合、上記のどれも機能しませんでした。

テーマにitem name="Android:windowTranslucentStatus">true</item>がありました。そして、スクロールビューがある親レイアウトにAndroid:fitsSystemWindows="true"を設定することで修正されました。

15
giorgos.nl

AndroidManifest.xmlファイルのタグにAndroid:windowSoftInputMode="stateHidden|adjustResize"を追加します。これにより、ソフトキーボードが表示された後、画面が左上のスペースにサイズ変更されます。そのため、簡単にスクロールできます。

11
Rajesh Hegde

ScrollViewを親レイアウトとして設定してみてください。それは私にとって魅力のように機能します!

0

私の問題は、Horizo​​ntalScrollViewにありました。私の場合、Horizo​​ntalScrollViewを次のように設定する必要がありました。

Android:layout_width="match_parent"
Android:layout_height="match_parent"

そして削除:

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

AndroidManifest.xmlでは、アクティビティは次のように設定されます。

Android:windowSoftInputMode=""

この奇妙なバグに出くわした人の助けになることを願っています。

0
gtsouk

私の場合、上記のソリューションはいずれも[〜#〜] remove [〜#〜]まで機能しません。

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

私の活動では、そのコードを使用して全画面表示を取得します。場合によっては、フルスクリーンの設定をすべて削除して、上記の解決策が機能するようにしてください。

0