之前做項目的時候,發現在 Fragment 中使用 SwipeRefreshLayout 會有一個問題,就是當 SwipeRefreshLayout 正在刷新的時候如果切換 Fragment ,會導致當前 Fragment 的界面保留在 Activity 中的相應位置上,切換到其他的 Fragment 會和之前的 Fragment 重合,并且 SwipeRefreshLayout 會一直處于刷新狀態直到退出 Activity ,解決方法有兩個,下面分別說明。
方法一 ?:在退出 Fragment 的時候結束 SwipeRefreshLayout 動畫,并且清除緩存,如下所示:
@Override
public void onDestroyView() {
super.onDestroyView();
refreshLayout.setRefreshing(false);
refreshLayout.destroyDrawingCache();
refreshLayout.clearAnimation();
unbinder.unbind();
}
方法二 ?:在 SwipeRefreshLayout 的外層嵌套一層 FrameLayout ,即保證 SwipeRefreshLayout 不是處在根布局即可