我正在以编程方式调用pull-to-refresh,在我的片段onResume()
中的一个内容中精彩地解释了here。这是我的代码:
private PullToRefreshScrollView panelScrollView;
@Override
public void onResume() {
panelScrollView.setRefreshing();
super.onResume();
}
这会刷新我的片段,但是反弹(就像用户拉动和释放一样)会给用户带来糟糕的体验。
我的问题:
super.onResume()
一旦到达前景就不会刷新片段?为什么我需要首先拨打PullToRefreshScrollView.setRefreshing()
?答案 0 :(得分:1)
首先我建议使用支持拉动刷新非常容易使用。 https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html
文档说明如下
如果活动希望仅显示进度动画,则应该 call setRefreshing(true)https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html#isRefreshing()
拉动刷新的目的是用户特别希望刷新数据。你要做的是一种反模式。但在理想情况下,如果您实现pull to refresh,则在用户完成操作之前不想重新加载。这样,用户可以决定移动数据不刷新,但连接到wifi后快速刷新。
作为在调用片段onResume时实现刷新的补充,您可以创建一个从Fragment扩展的新类。
public class AutoRefreshFragment extends Fragment {
...
public void onResume() {
panelScrollView.setRefreshing();
}
...
}
而不是扩展常规Fragment使用您刚刚创建的超类extends AutoRefreshFragment
。