SwipeRefreshLayout刷新与fragmentTransactions的冲突

时间:2015-04-21 13:39:48

标签: android android-fragments

TLDR:这是我的错误报告:http://goo.gl/UgBFW2

使用SwipeRefreshLayout如果我按下并在适配器触发视图刷新时触发getSupportFragmentManager().popBackstack()super.onBackPressed()fragmentTransaction.replace(),则两个片段重叠(a可以在顶部链接中找到显示问题的视频。

我尝试了几件事,添加背景不是一个解决方案,因为列表片段位于前台,可点击的是前一个片段。

有没有人找到解决方案?

Replacing Fragment does not work properly while swipeRefresh is running

4 个答案:

答案 0 :(得分:5)

Add this to the fragment that contains the swipe

@Override
public void onPause() {
    super.onPause();
    if (swipeRefreshLayout!=null) {
        swipeRefreshLayout.setRefreshing(false);
        swipeRefreshLayout.destroyDrawingCache();
        swipeRefreshLayout.clearAnimation();
    }
}

答案 1 :(得分:3)

这是一个错误。谷歌可能会在将来修复它。

Android Issue 78062

答案 2 :(得分:0)

尝试在FrameLayout中包装SwipeToRefreshLayout。它为我解决了这个问题。

答案 3 :(得分:0)

我面临的问题

我在appcompat-v7:25.1.0中遇到了同样的问题。 我已经尝试了以下所有这些代码仍然存在问题

@Override
public void onPause() {
    super.onPause();
    if (swipeRefreshLayout!=null) {
        swipeRefreshLayout.setRefreshing(false);
        swipeRefreshLayout.destroyDrawingCache();
        swipeRefreshLayout.clearAnimation();
    }
}

<强>解决方案

如果遇到同一问题的任何人请将appcompat降级到25.0.1并使用上面的代码段来停止设置相同的动画。它对我来说很好