打电话给克里斯·巴恩斯以编程方式刷新而没有反弹

时间:2016-06-21 11:35:42

标签: android android-fragments pull-to-refresh

我正在以编程方式调用pull-to-refresh,在我的片段onResume()中的一个内容中精彩地解释了here。这是我的代码:

private PullToRefreshScrollView panelScrollView;

@Override
public void onResume() {
    panelScrollView.setRefreshing();            
    super.onResume();
}

这会刷新我的片段,但是反弹(就像用户拉动和释放一样)会给用户带来糟糕的体验。
我的问题:

  1. 我可以获得相同的刷新没有反弹吗?
  2. 为什么片段的super.onResume()一旦到达前景就不会刷新片段?为什么我需要首先拨打PullToRefreshScrollView.setRefreshing()

1 个答案:

答案 0 :(得分:1)

首先我建议使用支持拉动刷新非常容易使用。 https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

  1. 文档说明如下

      

    如果活动希望仅显示进度动画,则应该   call setRefreshing(true)https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html#isRefreshing()

  2. 拉动刷新的目的是用户特别希望刷新数据。你要做的是一种反模式。但在理想情况下,如果您实现pull to refresh,则在用户完成操作之前不想重新加载。这样,用户可以决定移动数据不刷新,但连接到wifi后快速刷新。

  3. 作为在调用片段onResume时实现刷新的补充,您可以创建一个从Fragment扩展的新类。

    public class AutoRefreshFragment extends Fragment {
     ...
        public void onResume() {
              panelScrollView.setRefreshing();
        }
     ...
    }
    

    而不是扩展常规Fragment使用您刚刚创建的超类extends AutoRefreshFragment

相关问题