2013-08-17 109 views
0

我有一些片段,我需要運行一些動畫時,他們變得可見。通知片段的查看孩子

這些碎片在ViewPager中。感謝那個答案 - How to determine when Fragment becomes visible in ViewPager - 我知道,當我的片段通過getUserVisibleHint方法可見時,我會收到通知。

因爲我有很多動畫,所以我製作了自定義視圖,以瞭解如何爲自己製作動畫。現在,我需要通知片段的getUserVisibleHint方法中片段的所有視圖,以便他們知道是時候進行動畫製作了。我的問題是: 如何通知片段內的所有視圖?

任何解決方案都是值得歡迎的,但我如何說,我需要通知的視圖是由我創建的自定義視圖,所以我相信我也需要某種自定義通知。

回答

1

你說你所有的意見都是自定義的。我假設他們都實現了一個特定的接口(可以說,InterfaceA)。

以下代碼將在實現InterfaceA接口的每個自定義視圖上調用notificationMethod()viewGroup是您的根視圖(例如,LinearLayout)。

int childcount = viewGroup.getChildCount(); 
for (int i=0; i < childcount; i++){ 
    View view = viewGroup.getChildAt(i); 
    if (view instanceof InterfaceA) { 
     ((InterfaceA)view).notificationMethod(); 
    } 
} 
+3

我會建議,而不是直接強制轉換:'View child = viewGroup.getChildAt(i); if(childA的InterfaceA){((InterfaceA)child).notificationMethod();'。這樣,如果佈局中沒有實現接口的任何視圖,它將繼續優雅地繼續。 – kcoppock