2010-10-04 70 views
0

我试图通过setVisibility来禁用ViewFlipper中的TextView,无法让它像我想要的那样行事。我的代码:setVisibility无法在ViewFlipper内工作

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完全消失。有什么办法可以做到这一点?

+0

设置实际的ViewFlipper不见了?我不确定我是否理解这个问题。你也可以使用onAnimationFinished列表器(或类似的东西,我忘记了实际的名字),然后设置你的视图在回调。 – schwiz 2010-10-04 16:29:38

+0

我基本上有三个不同文本的ViewFlipper。取决于用户选择的情况。我希望一个或多个文本消失并不显示。但是,“去过的”属性在ViewFlipper中仍留有空白。 – honeal 2010-10-05 05:16:13

回答

2

我有同样的问题。使用INVISIBLEGONE更好,该视图不被显示,但它仍然占用一个时隙,例如,你会得到以前的观点两倍,只要你应该。

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

相关问题