10

シンプルなユーザーインターフェイスがあります。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の横にある場合にも発生します。

SurfaceViewの下のEditText(左)。EditTextがなくなりました(右)

4

4 に答える 4

8

このバグに関するスレッドのコメント投稿者が示唆したように、SurfaceViewまたはの背景色GLSurfaceViewを透明に設定することで、この問題を簡単に修正できmSurfaceView.setBackgroundColor(Color.TRANSPARENT);ます。

EditTextこの問題は、Samsung Galaxy Tab 10.1 で Honeycomb (v13) を押したときに発生しました。問題は、 のGLSurfaceViewサイズが変更された後、その場所に を覆っている黒い長方形がまだ残っていたことEditTextです。この解決策は、その誤った長方形を透明にするEditTextことで機能するため、 が表示されます。

于 2012-08-05T15:15:40.733 に答える
2

AndroidManifest.xml にアクティビティの次のコードを追加します。 android:windowSoftInputMode="adjustPan"

于 2013-09-08T14:47:37.640 に答える
0

はい、そうです!AndroidManifest.xml にアクティビティの次のコードを追加します。android:windowSoftInputMode="adjustPan"

編集テキストに、次を追加するだけです。

android:imeOptions="flagNoFullscreen"
于 2015-06-12T10:48:58.650 に答える