アプリの下部にテキストの編集があります。タッチイベントを取得すると、ソフトキーボードがウィンドウ全体を一番上にスクロールして表示されるようになり、EditTextが表示されたままになります。
問題は、ウィンドウがまったくスクロールせず、[テキストの編集] がソフト キーボードの後ろに隠れたままになることがあります。奇妙なことに、その瞬間に何かを押したり、ウィンドウ内の他の要素を操作したりすると、どうやらそれが更新されたり、そのようなものが表示されたりして、正しく上部にスクロールし、編集テキストが表示されるようになります。
私はさまざまなことを試しましたが、これが私の最終コードです:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black">
<my.Custom_Edit_Text
android:id="@+id/my_custom_edit_text"
style="@style/my_custom_edit_text_Style"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:maxLength="@integer/data_title_max_length"
android:text="@string/my_custom_edit_text_default"
android:selectAllOnFocus="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:cursorVisible="true"
android:inputType="text"/>
これは、onTouch イベントを処理する Custom_Edit_Text コードです。
setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
requestFocus();
}
return false;
}
});
マニフェスト ファイルでこの属性も設定しました。
android:windowSoftInputMode="stateHidden|adjustPan"