171

画面をスクロールしてテキストフィールドが表示されるようにする方法はありますか?

4

15 に答える 15

171

私も同じ問題を抱えていました。次のコードを試してください。

android:windowSoftInputMode="adjustPan"

入力を保持するアクティビティのアクティビティタグのmanifest.xmlに追加します。例:

<activity
            android:name=".Activities.InputsActivity"
            ...
            android:windowSoftInputMode="adjustPan"
            />
于 2014-02-14T17:52:22.077 に答える
167

ソフトキーボードが開いたときに表示されるものを制御する方法を尋ねていますか?windowSoftInputModeで遊んでみてください。詳細については、開発者向けドキュメントを参照してください。

于 2010-07-21T02:38:30.230 に答える
56

画面の下部に配置されたEditTextビューの上にソフトキーボードがある場合にも同じ問題が発生しました。AndroidManifest.xmlファイルの関連アクティビティに1行追加することで、解決策を見つけることができました。

android:windowSoftInputMode="adjustResize|stateHidden"

アクティビティタグ全体は次のようになります。

<activity
        android:name="com.my.MainActivity"
        android:screenOrientation="portrait"
        android:label="@string/title_activity_main"
        android:windowSoftInputMode="adjustResize|stateHidden" >
    </activity>

ここで最も重要な値はadjustResizeです。これにより、UI全体が上に移動し、ソフトキーボード用のスペースが確保されます。

于 2013-06-25T04:18:45.187 に答える
26

ScrollViewを追加して、スクロールしたいものをラップしてみませんか。これが私がそれを行った方法です。実際にはスクロールしないヘッダーを上に残し、ソフトキーパッドを開くとダイアログウィジェット(特にEditTexts)がスクロールします。

<LinearLayout android:id="@+id/HeaderLayout" >
  <!-- Here add a header or whatever will not be scrolled. -->
</LinearLayout>
<ScrollView android:id="@+id/MainForm" >
  <!-- Here add your edittexts or whatever will scroll. -->
</ScrollView>

私は通常、ScrollView内にLinearLayoutを持っていますが、それはあなた次第です。また、少なくとも私のデバイスでは、ScrollbarスタイルをoutsideInsetに設定すると役立ちます。

于 2010-08-19T12:33:14.690 に答える
17

あなたがする必要があるのは

android:isScrollContainer="true"

ソース:http ://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/

于 2016-02-02T14:31:02.483 に答える
15

古いスレッドを復活させて申し訳ありませんがandroid:imeOptions="flagNoFullscreen"、EditText要素の設定については誰も言及していません

于 2014-06-07T03:10:22.400 に答える
9
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"

android EditTextで機能しますが、webviewまたはxwalkviewでは機能しません。ソフトキーボードが使用しているwebviewまたはxwalkviewの入力を非表示にする場合android:windowSoftInputMode="adjustResize"

于 2016-12-07T05:09:07.723 に答える
4

トラックボールを使ってスクロールさせることができると思います。これは、最終的には選択方法によってプログラムで実現できる可能性がありますが、それは単なるアイデアです。トラックボールの方法が通常は機能することは知っていますが、これを実行してコードから機能させる正確な方法については、よくわかりません。
お役に立てば幸いです。

于 2010-07-21T01:36:06.400 に答える
1

キーボードカバーがonCreat()メソッドのアクティビティ内でtext.insideを編集する相対アクティビティにこの1行を追加します。

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
于 2018-05-25T07:54:11.900 に答える
1

追加するだけ

android:gravity="bottom" android:paddingBottom="10dp"

edittextのサイズに応じてpaddingBottomを変更します

于 2020-09-08T12:36:03.073 に答える
0

私はこれが古いことを知っていますが、上記の解決策のどれも私のために働きませんでした。徹底的なデバッグの後、私は問題を理解しました。android:windowTranslucentStatus解決策は、styles.xmlで属性をfalseに設定することです。

于 2019-04-19T14:35:56.547 に答える
0

EditTextフィールドがキーボードでカバーされている場合次のコードを使用します。

    EditText= findViewById(R.id.edittext)
    EditText?.getParent()?.requestChildFocus(EditText,EditText)

カーソルをFocusedEditTextに配置し たい場合は、FocusedEditText でフォーカスとカーソルを取得するのに役立つEditText.requestFocus()後に使用します。EditText?.getParent()?.requestChildFocus(EditText,EditText)

于 2020-01-21T10:02:07.763 に答える
0

上記の解決策は完全に機能しますが、フルスクリーンアクティビティ(半透明のステータスバー)を使用している場合、これらの解決策は機能しない可能性があります。したがって、フルスクリーンの場合は、アクティビティのonCreate関数内でこのコードを使用します。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        Window w = getWindow();
        w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN , WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN );
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.TYPE_STATUS_BAR);
    }

例:

  protected void onCreate(Bundle savedInstanceState) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        Window w = getWindow();
        w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN , WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN );
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.TYPE_STATUS_BAR);
    }
    
    super.onCreate(savedInstanceState);
于 2020-09-30T06:24:03.907 に答える
-1

AndroidManifest.xmlを編集します

android:windowSoftInputMode="adjustResize"

これをレイアウトファイルのルートビューに追加します。

android:fitsSystemWindows="true"

それで全部です。

于 2018-07-09T12:40:40.220 に答える
-1

私は同じ問題を抱えていて、追加すると言われている人々を検索しましたadjustPanが、私の場合adjustResizeはうまくいきました。

<activity
    android:name=".YOUR.ACTIVITY"
    ...
    android:windowSoftInputMode="adjustResize"
/>
于 2020-07-30T08:58:06.267 に答える