2015-04-01 83 views
0

我的碎片引用了RelativeLayoutmContentLayoutAndroid碎片:onDestroyView中的removeAllViews

onDestroyView()(導航到另一個片段之前),我需要刪除此mContentLayout的所有視圖。

我知道,你應該只從UI線程中處理UI的東西,但考慮到佈局是不可見的了,它將使意義從單獨的線程調用

mContentLayout.removeAllViews() 

,使視圖刪除不會阻止UI線程?

+0

否。刪除所有視圖會觸發一個佈局過程,該過程將觸發新的繪製過程。它應該是快速的。我刪除所有視圖,重新測量,然後繪製一個單一的流程。 – DeeV 2015-04-01 00:46:53

+1

只需調用'removeAllViewsInLayout()'怎麼樣? https://github.com/android/platform_frameworks_base/blob/master/core/java/android/view/ViewGroup.java#L4343 – 2015-04-01 01:32:45

+0

這將等到佈局傳遞實際刪除視圖,但它的數量相同無論如何都是時間。我99%確定調用任何這些調用任何這些方法都會導致崩潰。 – DeeV 2015-04-01 04:37:06

回答

0

我始終堅持這樣一個準則,即如果有一個好的經驗法則堅持下去。這是有原因的。

對於這種特殊情況,我相信您不需要使用單獨的線程來執行此操作。 UI線程應該能夠清除並重繪得很好。 DeeV在你的評論中說了同樣的話。