2010-11-11 86 views
0

我需要一個簡單的ViewFlipper實現的幫助。當我在活動的onCreate中填充子視圖「ws.addView(childView)」時,鰭狀肢完美地工作。ViewFlipper addView不工作

當我想從鰭狀肢中刪除所有的孩子,並通過addView(child)方法添加另一堆孩子時,我遇到了一個問題。我正試圖調用flipper上的onFinishInflate()和invalidate()方法,這似乎不會產生刷新鰭狀肢內容的預期效果。鰭狀肢的視圖是空白的。我檢查了鰭狀肢在addView循環後是否包含孩子,在我的情況下,數字是> 1.也許我錯過了一些東西。希望有人能幫助我。

   ws.removeAllViews(); 
       ArrayList<View> childViews = getAllChildrenFromSomewhere(); 
       for (View childView : childViews) { 
        ws.addView(childView); 
       } 
       ws.onFinishTemporaryDetach(); 

       ws.onFinishInflate(); 
       ws.invalidate();  

問候

回答

2

我能找到答案,我的問題。我從ViewFlipper中刪除所有的孩子,下一步是將新的孩子添加到ViewFlipper。由於沒有選擇任何孩子,因此移除所有孩子並使視圖失效導致空白視圖。通過僅添加新的孩子並再次使視圖無效,ViewFlipper保持空白。通過在ws.invalidate()後面使用ws.showNext(),將顯示新子項的第一個子項,並且ViewFlipper按預期工作。希望這可以幫助。

  ws.removeAllViews(); 
      ArrayList<View> childViews = getAllChildrenFromSomewhere(); 
      for (View childView : childViews) { 
       ws.addView(childView); 
      } 
      ws.onFinishTemporaryDetach(); 

      ws.onFinishInflate(); 
      ws.invalidate(); 
      // show the first childView 
      ws.showNext(); 

最誠摯的問候和快樂編碼:-)

+0

onFinishInflate是不可見的? :/ – 2014-03-20 15:54:46