2

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 が機能して画面にテキストが表示された理由がわかりません。

誰かが同じ問題に遭遇したことがある場合は、私のコードの何が問題なのか、または隠れたバグがあるのか​​教えてください。

ありがとう

4

0 に答える 0