Android FrameLayout在初始设置为不可见时无法设置View可见

时间:2011-12-22 19:21:22

标签: java android visibility android-framelayout

我在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必须最初在屏幕上显示,然后我将其变为INVISIBLE)。如果我这样做,当游戏结束时,将正确显示TextView。

我非常怀疑这是一个安卓漏洞。我更改了android LunarLander代码,我不知道LunarLander为什么会工作并在屏幕上显示Text。

如果有人遇到同样的问题,请告诉我我的代码有什么问题或是否有隐藏的错误?

由于

0 个答案:

没有答案