2017-01-16 67 views
1

我已将滑动刷新布局附加为顶级父节点,以向用户提供下拉刷新选项。向下滚动导致激活下拉刷新选项

所以,当我向下滚动,我无法滚动,自动下拉选项开始加载。

我已经搜索了一些有关同一问题的堆栈溢出问题。他们说滚动监听并禁用基于列表视图当前索引的下拉选项。

我试过听它。但我无法听到任何事件时滚动下来。

我的列表视图对象:

mListView = (ListView) getView().findViewById(android.R.id.list); 

谁能请帮助我。任何其他有趣的解决方案或解决。

回答

5

我就是这么做的,它的工作完美:

class YourActivity extends AppCompatActivity implements ViewTreeObserver.OnScrollChangedListener { 
@Override 
protected void onStart() { 
    super.onStart(); 
    mListView.getViewTreeObserver().addOnScrollChangedListener(this); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
     mListView.getViewTreeObserver().removeOnScrollChangedListener(this); 
} 


@Override 
public void onScrollChanged() { 
    if (mListView.getFirstVisiblePosition() == 0) { 
     swipeRefresh.setEnabled(true); 
    } else { 
     swipeRefresh.setEnabled(false); 
    } 
} 
} 

希望这会有所帮助。

+1

非常感谢@Mohanand。太棒了......但相反getScrollY()我已经使用getFirstVisiblePosition()。它的工作完美。你节省了我的时间。谢谢... – Vji

+0

没错,getFirstVisiblePosition()会起作用。欢迎:) –

+0

HI Mohanad。我还有一个查询。考虑到布局中没有列表视图,当布局的第一个元素可见时,我必须启用/禁用刷卡刷新布局。如何实施? – Vji

1

在我的情况下,我通过将Scrollview改为NestedScrollView来解决问题。

切换到NestedScrollView后,它工作正常