2010-10-04 73 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爲空時做正確的事情。

相關問題