Androidアプリでキーボードの上までスクロールできるようにする

  • 23
    Like
  • 2
    Comment
More than 1 year has passed since last update.

AndroidアプリでScrollViewを表示中にキーボードを表示すると、一番上までスクロールしても画面の下の部分がキーボードに隠れてしまいます。
これを、キーボードを表示したままでも画面最下部までスクロールできるようにするには、以下のようにします。

1. ManifestにwindowSoftInputModeを設定する

AndroidManifest.xmlのactivityタグにandroid:windowSoftInputMode="adjustResize"を追加します。
これによって、キーボードが表示されたらアクティビティのサイズがキーボード分小さくなるようになります。

AndroidManifest.xml
<manifest
    ... >
    <application
        ... >

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

    </application>
</manifest>

2. ScrollViewのweightを1にする

ScrollViewweight1にします。
これにより、アクティビティがリサイズされてもScrollViewが画面いっぱいに広がるようになります。

myactivity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1" >

        ...

    </ScrollView>

</RelativeLayout>

 
こちらを参考にしました。