Android ListView不响应滚动,但触摸
当我的listview停止滚动时,我调用adapter.notifyDataSetChanged;在上面。我正在给notifyDataSetChanged打电话 用户触摸listview列表时不会滚动 从列表中移除手指列表不滚动 但是当listview停止滚动,我试图立即再次滚动它时,它没有响应。它需要1-2秒才能再次响应滚动。毫无头绪 给你的听众Android ListView不响应滚动,但触摸,android,listview,Android,Listview,当我的listview停止滚动时,我调用adapter.notifyDataSetChanged;在上面。我正在给notifyDataSetChanged打电话 用户触摸listview列表时不会滚动 从列表中移除手指列表不滚动 但是当listview停止滚动,我试图立即再次滚动它时,它没有响应。它需要1-2秒才能再次响应滚动。毫无头绪 给你的听众 listView.setOnTouchListener(new OnTouchListener() { @Override
listView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if(mScrollStateOfListView==OnScrollListener.SCROLL_STATE_IDLE) {
if (!adapter.getAllItemsVisible()) {
doThings();
adapter.notifyDataSetChanged();
} else if (adapter.getAllItemsVisible() && adapter.getHighlightCurrentMonth()) {
doThings();
adapter.notifyDataSetChanged();
}
}
else if(mScrollStateOfListView==OnScrollListener.SCROLL_STATE_TOUCH_SCROLL){
listBeingTouched.set(true);
}
}
if (event.getAction() == MotionEvent.ACTION_UP) {
if(mScrollStateOfListView==OnScrollListener.SCROLL_STATE_IDLE) {
doThings();
listBeingTouched.compareAndSet(true,false);
adapter.notifyDataSetChanged();
}
else if(mScrollStateOfListView==OnScrollListener.SCROLL_STATE_TOUCH_SCROLL){
listBeingTouched.compareAndSet(true,false);
}
}
return false;
}
});
对于onscrollListener
listView.setOnScrollListener(new OnScrollListener() {
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
mScrollStateOfListView=scrollState;
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE && !listBeingTouched.get()) {
listBeingTouched.set(true);
doThingsAndNotifyAdapterDataSet()
}
}
});
你能分享一些相关的代码吗?好的@codeMagic我在pastebinNo上发布了,在你的问题中发布最相关的代码。我们不需要离开现场查看您的代码,至少不需要查看部分代码片段。如果你想在一个粘贴中链接整个代码,很好,但是重要的部分应该在这里only@codeMagic张贴代码