setVisibility在ViewFlipper中不起作用

时间:2010-10-04 16:19:52

标签: android visibility viewflipper

我正在尝试通过setVisibility禁用ViewFlipper中的TextView到GONE,并且无法让它像我想要的那样行动。我的代码:

switch(index) {        
    case 0:
        //Do Stuff
     findViewById(R.id.o2).setVisibility(8);
     findViewById(R.id.o3).setVisibility(8);
     break;
    case 1:
        //Do Stuff
     findViewById(R.id.o3).setVisibility(8);         
     break;
    case 2:
        //Do Stuff
     break;
    }

我的XML

<ViewFlipper android:id="@+id/oFlipper"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:flipInterval="1000"
     android:inAnimation="@anim/push_up_in"
     android:outAnimation="@anim/push_up_out">
        <TextView android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:gravity="center_horizontal"
         android:textSize="26sp"
         android:text="Opponents:"/>
        <TextView android:id="@+id/o1"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:gravity="center_horizontal"
         android:textSize="26sp"
         android:visibility="gone"/>
        <TextView android:id="@+id/o2"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:gravity="center_horizontal"
         android:textSize="26sp"
         android:text="2"/>
        <TextView android:id="@+id/o3"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:textSize="26sp"
            android:text="3"/>
 </ViewFlipper>

我尝试过.startFlipping()之前和之后的代码无济于事。看起来TextView已经消失了一个视图翻转然后重新出现。但即使在XML文件中硬编码为GONE,视图也只是空白而不是将其他视图移动到位。我基本上只是希望TextView完全消失。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。使用INVISIBLE优于GONE视图未显示但仍占用时间段,例如你得到之前的观点的时间是你应该的两倍。

通过在ViewFlipper中添加和删除子视图,我可以按照自己的方式工作。在我将每个子视图设置为GONEVISIBLE(在onResume中)的代码中,我现在使用.removeAllViews()从鳍状肢中删除它们然后如果我将它们设置为可见我添加它们用.addView(mView)返回;当ViewFlipper为空时,它甚至会做正确的事情。