シンプルなユーザーインターフェイスがあります。EditTextはSurfaceViewの下に配置する必要があります。私はRelativeLayoutを使用してこれら2つのビューを配置します。
ここで、EditTextをタップして仮想キーボードを開くと、SurfaceViewが上にスライドしますが、EditTextは非表示になり、入力した文字列は表示されません。
再現するには、次のレイアウトXMLコードを使用します。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<SurfaceView
android:id="@+id/SurfaceView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</SurfaceView>
<EditText
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:selectAllOnFocus="true"
android:textStyle="normal"
android:singleLine="true">
</EditText>
</RelativeLayout>
メインのActivityクラスは、レイアウトを表示するだけで済みます。プログラムを起動してEditTextをタップすると、仮想キーボードは表示されますが、EditTextフィールドは表示されなくなります。
おそらくRelativeLayoutが問題を引き起こしていますが、同じレイアウトを別のLayoutクラスで再現する方法がわかりません。
どんな提案でも大歓迎です、私は本当にあなたの助けに感謝します。
ありがとう。
編集:
これは2つのスクリーンショットです。1つは仮想キーボードなしで下部にEditTextを示し、もう1つは仮想キーボードはあるがEditTextがないものです。SurfaceViewとEditTextが実際には上にシフトし、EditTextが消えてしまうことに注意してください。ところで、これは、ボタンがEditTextの横にある場合にも発生します。