Android FrameLayout で非常に奇妙な問題に遭遇しました。
SurfaceView を持つ非常に単純なゲームを試しています。ゲームが終了したら、おそらくテキストを表示する別のビューをポップアップ表示したいと考えています。これは、Android のサンプル lunarlander コードと非常によく似ています。しかし、私はそれを機能させることができません。ここに奇妙な問題があります:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/game_frame"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.tmh.FunMatch.MainGamePanel
android:id="@+id/game_panel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.tmh.FunMatch.MyText
android:id="@+id/text"
android:text="test"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
android:textColor="#88ffffff"
android:textSize="24sp"/>
</RelativeLayout>
上記の FrameLayout では、ゲーム終了時に 2 つ目の TextView を表示したいと考えています。ただし、TextView.setVisibility(VISIBLE) を呼び出した後は表示されません。
最初に TextView を VISIBLE として設定し、ある時点でコード内で INVISIBLE に設定した場合、多くの実験を行いました。(私の理解では、TextView を最初に画面に表示してから、それを INVISIBLE に変更する必要があります)。そうすれば、ゲームが終了したときに TextView が正しく表示されます。
私はそれがアンドロイドのバグであることを非常に疑っています。Android LunarLander コードを変更しましたが、LunarLander が機能して画面にテキストが表示された理由がわかりません。
誰かが同じ問題に遭遇したことがある場合は、私のコードの何が問題なのか、または隠れたバグがあるのか教えてください。
ありがとう