108

私は<ScrollView>レイアウトを持っています:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/my_scrollview"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

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

        <EditText
            android:id="@+id/input_one"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:inputType="number" >

         <EditText
            android:id="@+id/input_two"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:inputType="number" >

         <EditText
            android:id="@+id/input_three"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:inputType="number" >

          <Button
            android:id="@+id/ok_btn"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="20dp"
            android:text="@string/ok_str" />

      </LinearLayout>
</ScrollView>

上記のように、単純なレイアウトは 3 つの入力フィールドと「OK」ボタンで構成されています。

上記のレイアウトでアプリを実行します。最初の入力フィールド ( ) をタップする@+id/input_oneと、画面の下部からソフト キーボードがポップアップし、3 番目の入力フィールドと [OK] ボタンが非表示になります。

を使っているので、ソフトキーボードで隠れ<ScrollView>ている3番目の入力欄と「OK」ボタンを見るためにページを上にスクロールできると思っていたのですが、ページがスクロールできません。なんで?それを取り除く方法は?基本的に、すべての入力フィールドと [OK] ボタンが表示されるソフト キーボードも表示されるようにしたいと考えています。

4

10 に答える 10

132

AndroidManifest.xmlに以下の属性を定義することで問題を解決しまし<activity>

android:windowSoftInputMode="adjustResize"
于 2012-04-03T08:35:26.843 に答える
21

私にとって機能する唯一のものは、この属性のマニフェストのアクティビティに入れられます:

android:windowSoftInputMode="stateHidden|adjustPan"

アクティビティを開くときにキーボードを表示せず、ビューの下部に重ならないようにします。

于 2016-02-11T17:20:01.177 に答える
12

あなたのManifestdefinewindowSoftInputModeプロパティで:

<activity android:name=".MyActivity"
          android:windowSoftInputMode="adjustNothing">
于 2012-04-03T07:56:55.290 に答える
8

これをチェックしてください。

<activity android:name=".Calculator"
    android:windowSoftInputMode="stateHidden|adjustResize" 
    android:theme="@android:style/Theme.Black.NoTitleBar">
</activity>
于 2012-04-03T08:03:17.980 に答える
2

また、プログラムでそれを行いたい場合は、以下の行をアクティビティの onCreate に追加するだけです。

getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | 
            WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE );
于 2019-06-03T12:25:39.063 に答える