7

我有一个由片段组成的 ViewPager(由 AbstractBrowsePagerAdapter 支持)。每个片段都以 SwipeRefreshLayout 作为根来扩展布局。我最近更新了 support-v4:21.0.0 库。新的 SwipeRefreshLayout 使用圆形进度条而不是线性垂直进度条,如下面的屏幕截图所示。

当我拉刷新时,向右滑动,在 ViewPager 中创建一个与我拉刷新的索引相同的新片段,然后转到那个新片段,以前的视图仍然出现在我的新内容之上。

新 SwipeRefreshLayout 的错误

正如您在屏幕截图中看到的,“空目录”文本视图和“圆形进度条”仍然出现在之前被销毁的片段中。

  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

我正在寻找一种解决方法,强制删除前一个片段的视图。

4

1 回答 1

8

我能够通过在我的 Fragment 的 onPause() 方法上调用 clearAnimation() 来解决这个问题

@Override
public void onPause() {
    swipeLayout.clearAnimation();
    super.onPause();
}
于 2015-01-14T01:53:52.693 回答