什么是禁用SwipeRefreshLayout pull刷新的正确方法

时间:2015-12-04 14:28:01

标签: android swiperefreshlayout

我有一个使用SwipeRefreshLayout的ListView。有用。但我并不总是希望拉动刷新动画,也不希望回调触发。

在我的情况下,pull to refresh动作将视图与服务器同步,但可以选择禁用服务器同步作为首选项。当同步被禁用时,我不希望拉到referesh发生。

我目前正在做的是将SwipeRefreshLayout子类化并覆盖`canChildScrollUp'为“谎言”,实际上它不能,但我不想要动画。

因此:

private class ListFragmentSwipeRefreshLayout extends SwipeRefreshLayout
{
    public ListFragmentSwipeRefreshLayout(Context context) { super(context); }

    @Override
    public boolean canChildScrollUp()
    {
        final ListView view = getListView();
        if (view.getVisibility() == View.VISIBLE)
            return !shouldShowRefresh(view);

        return false;
    }
}

其中`shouldShowRefresh'的实现考虑是否可以实际滚动并结合我的网络同步设置。

这样做是有效的,但我问这个问题,因为这听起来像是一个常见的要求,并且混淆了“canChildScrollUp”相当混乱。

感谢。

1 个答案:

答案 0 :(得分:4)

如果我做对了,你想考虑同步状态启用和禁用 SwipeRefreshLayout 。你可以做这样的事情

if(sync){
  swipeRefreshLayout.setEnabled(true);
else
  swipeRefreshLayout.setEnabled(false);

其中sync是布尔值,表示是否启用了同步。

相关问题