2014-12-10 45 views
6

我有一個由碎片組成的ViewPager(由AbstractBrowsePagerAdapter支持)。每個片段都以SwipeRefreshLayout作爲根擴展布局。我最近更新到support-v4:21.0.0庫。新的SwipeRefreshLayout使用圓形進度條代替線性垂直進度條,如下面的屏幕截圖所示。SwipeRefreshLayout的新版本會導致錯誤的繪製視圖

當我拉動刷新時,向右滑動,在ViewPager中創建一個與我拉動刷新的片段相同索引的新片段,然後轉到新的片段,上一個視圖仍然出現在我的新片段之上內容。

Bug with new SwipeRefreshLayout

正如你可以在截圖中看到,「空目錄」的TextView和「圓進度」仍然從被摧毀之前的片段出現。

  1. 這隻有在SwipeRefreshLayout處於裝載狀態(加載器在屏幕上顯示)
  2. 這並不與前一版本的SwipeRefreshLayout
  3. 的hierarchyviewer工具不會發生髮生在發生錯誤時工作。它工作之前,它工作,如果我重新啓動應用程序,但在處於竊聽狀態時不起作用。
  4. 當我使用DDMS轉儲視圖時,不會顯示前一個片段的視圖。

這似乎是在新SwipeRefreshLayout一個錯誤,但有同樣的問題我無法找到任何人,它似乎並沒有要在https://code.google.com/p/android/issues/list?can=1&q=SwipeRefreshLayout&colspec=ID+Type+Status+Owner+Summary+Stars&cells=tiles

報道我在尋找一個解決辦法,迫使從前面的片段的意見被刪除的好。

+1

swipeRefreshLayout.setRefreshing(假)來解決這個問題; – 2015-01-28 11:30:31

+0

沒有。正確答案如下。 – Quanturium 2015-02-05 00:24:24

回答

8

我能夠通過調用的onPause clearAnimation()()我的片段的方法

@Override 
public void onPause() { 
    swipeLayout.clearAnimation(); 
    super.onPause(); 
} 
+0

當你更換碎片時,它很好用。但是在ViewPager的情況下,片段上的onPause()方法不會被調用。 – Quanturium 2015-01-28 19:03:05

+0

我有一個類似的問題 - http://stackoverflow.com/questions/30821940/replacing-fragments-quickly-causes-a-weird-screenshot-of-the-previous-fragment-t。在片段的onDestroyView中刪除片段視圖的所有子視圖也似乎「修復」它,但我不知道爲什麼 – Rickster 2015-06-15 20:17:48

相關問題