Zor*_*did 5 android swiperefreshlayout
我正在努力使用SwipeRefreshLayoutGoogle支持库中的文档.
当我使用回调设置接收刷新调用时setOnRefreshListener,我会执行操作,之后,我发现我需要再次将刷新状态设置为false - 如果我不这样做,我再也不能通过滑动来触发它!
mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);
if (mSwipeRefreshLayout != null) {
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
Toast.makeText(getApplication(), "Refreshing!", Toast.LENGTH_SHORT).show();
//requestDataRefresh();
mSwipeRefreshLayout.setRefreshing(false);
}
});
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但请查看以下文档setRefreshing:
/**
* Notify the widget that refresh state has changed. Do not call this when
* refresh is triggered by a swipe gesture.
*
* @param refreshing Whether or not the view should show refresh progress.
*/
public void setRefreshing(boolean refreshing) {...
Run Code Online (Sandbox Code Playgroud)
但是再次将刷新状态设置为false正是刷新后我必须要做的!
文档是错误的还是我看错了?该文件不应该说:"当刷卡手势触发刷新时,不要将刷新状态调用为真"
你怎么看?
我认为它可能应该说,如果刷新是通过滑动手势触发的,则无需用 true 来调用它。
顺便说一句,我在某些情况下更新 UI 时发现了一些问题,这些问题可以通过像这样包装调用来解决:
private void setRefreshing(final boolean refreshing) {
if (mSwipeRefreshLayout != null) {
mSwipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
mSwipeRefreshLayout.setRefreshing(refreshing);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1626 次 |
| 最近记录: |