web-dev-qa-db-ja.com

Androidソフトキーボードが編集テキストフィールドをカバー

テキストフィールドが見えるように画面をスクロールさせる方法はありますか?

150
Alexis

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

154
Cheryl Simon

同じ問題がありました。次のコードを試してください:

Android:windowSoftInputMode="adjustPan"

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

<activity
            Android:name=".Activities.InputsActivity"
            ...
            Android:windowSoftInputMode="adjustPan"
            />
152
Kuldeep Sakhiya

画面の下部に配置された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全体がシフトアップされ、ソフトキーボード用のスペースが確保されます。

52
DanKodi

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に設定すると役立ちます。

25
zmilojko

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

Android:isScrollContainer="true"

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

古いスレッドを復活させてすみませんが、EditText要素にAndroid:imeOptions="flagNoFullscreen"を設定することについて誰も言及していません

13
William Moffitt
Android:windowSoftInputMode="adjustPan"
Android:isScrollContainer="true"

Android EditTextでは機能しますが、webviewやxwalkviewでは機能しません。ソフトキーボードがwebviewまたはxwalkviewで入力を非表示にすると、Android:windowSoftInputMode="adjustResize"が使用されます

5
Kris Roofe

トラックボールを使用してスクロールさせることができると信じています。トラックボールは、最終的に選択方法を介してプログラムで実現される可能性がありますが、単なるアイデアです。トラックボール方式は通常機能することを知っていますが、これを実行してコードから機能させる正確な方法については、わかりません。
助けてください。

4

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

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
0
umesh shakya

私はこれが古いことを知っていますが、上記の解決策のどれも私にとってはうまくいきませんでした。広範なデバッグの後、私は問題を見つけました。解決策は、styles.xmlでAndroid:windowTranslucentStatus属性をfalseに設定することです

0
Beast77