Android FrameLayout не может сделать вид видимым, когда он изначально установлен как невидимый - PullRequest
3 голосов
/ 22 декабря 2011

Я столкнулся с очень странной проблемой в 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 я хочу показать второй TextView, когда игра закончится.Однако он не будет отображаться после вызова TextView.setVisibility (VISIBLE).

Я проделал большой эксперимент, если я изначально установил TextView как VISIBLE, а затем в какой-то момент установил в коде значение INVISIBLE.(Насколько я понимаю, TextView должен быть сначала показан на экране один раз, а потом я превратил его в невидимый).Если я так и сделаю, когда игра закончится, TextView будет правильно отображен.

Я очень сомневаюсь, что это ошибка Android.Я изменил код Android LunarLander, я не знаю, почему LunarLander работал и отображал текст на экране.

Если кто-то сталкивался с той же проблемой, пожалуйста, скажите мне, что не так с моим кодом или естьскрытый баг?

Спасибо

...