0

我试图通过 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 完全消失。有没有办法做到这一点?

4

1 回答 1

2

我有同样的问题。使用INVISIBLEGONE不显示视图要好,但它仍然占用时间段,例如,您获得前一个视图的时间是您应该获得的两倍。

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

于 2011-10-02T17:50:57.080 回答