Android ソフト キーボードは EditText フィールドをカバーします
-
18-09-2020 - |
質問
画面をスクロールしてテキストフィールドを表示できるようにする方法はありますか?
解決
ソフトキーボードが開くときに表示されるものを制御する方法を尋ねていますか? WindowsoftInputMode で遊ぶことをお勧めします。詳細については、詳細についてはを参照してください。
他のヒント
私は同じ問題を持っていました。次のコード:
を試してくださいandroid:windowSoftInputMode="adjustPan"
.
入力を保持するアクティビティのアクティビティタグでmanifest.xmlに追加します。例:
<activity
android:name=".Activities.InputsActivity"
...
android:windowSoftInputMode="adjustPan"
/>
. ソフトキーボードが画面の下部に置かれた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>
.
ここで最も重要な値はagoustressizeです。これにより、UI全体がソフトキーボード用の部屋を与えるために全体をシフトさせます。
スクロールしたいものは何でもラップするようにスクロールビューを追加しようとしないのです。これは私がそれをやったことがあるかは、私は実際にスクロールしない上にヘッダーを残しながら、ソフトキーパッドを開くと、ダイアログウィジェット(特にeditittexts)がスクロールします。
<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スタイルをOutsessInsetに設定すると、少なくとも自分のデバイスに役立ちます。
あなたがする必要があるのは
android:isScrollContainer="true"
.
ソース: http:// www・.davidwparker.com / 2011/08/25 / Android-Fixing-Window - Scrolling / Scrolling /
古いスレッドを復活させてすみませんが、eDittext要素のentestext要素のandroid:imeOptions="flagNoFullscreen"
の設定はありませんでした
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"
.
WebViewまたはXwalkViewでは機能しない間は、Android EditTextの機能です。ソフトキーボードがWebViewまたはXWalkViewで入力を非表示にすると、android:windowSoftInputMode="adjustResize"
あなたがトラックボールを使ってスクロールすることができると私は信じています、それは最終的に選択方法を通してプログラム的に達成されるかもしれませんが、それは単なる考えです。私はトラックボールの方法が通常機能していることを知っていますが、これを行い、コードから作業するための正確な方法はわかりません。
助けを願っています。
キーボードカバーを編集するText.inside onCreat()アクティビティのメソッドを編集する相対的なアクティビティにこの単一の行を追加します。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
. これが古いことを知っていますが、上記の解決策のどれも私のために働いていませんでした。幅広いデバッグの後、私は問題を考え出した。 このソリューションは、my styles.xml
でandroid:windowTranslucentStatus
属性をfalseに設定しています。 EditText フィールドがキーボードで覆われている場合は、次のコードを使用します。
EditText= findViewById(R.id.edittext)
EditText?.getParent()?.requestChildFocus(EditText,EditText)
ご希望の場合は、 カーソル を使用するよりも、Focused EditText 内に置く必要があります。 EditText.requestFocus()
後に EditText?.getParent()?.requestChildFocus(EditText,EditText)
これは、Focused EditText でフォーカスとカーソルを取得するのに役立ちます。