【发布时间】:2019-06-27 22:23:36
【问题描述】:
我想在向下滚动时更新我的 listView 我这样做:
mConnectionList.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
if( mConnectionList.getLastVisiblePosition() == connectionList.size()-1 ){
getConnections();
}
break;
case MotionEvent.ACTION_UP:
isCrollingDown.set(false);
break;
default:
}
return false;
}
});
但它不起作用,当我向下滚动时它会更新并在我向上滚动时更新
我也尝试这样做,但它也不起作用:
mConnectionList.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// Log.e("a0","a " + mConnectionList.getLastVisiblePosition());
// if(mConnectionList.getLastVisiblePosition() == connectionList.size()-1 ){
getConnections();
}
}
});
【问题讨论】:
-
ACTION_UP和ACTION_DOWN表示手指从屏幕上按压和抬起,而不是滚动 -
你应该为此设置 onScrollListener。
-
@tompok 当您使用 setOnScrollListener 时会发生什么,您的 onScrollStateChanged 是否正在执行?
-
@BrijeshJoshi 是的正在执行
-
尝试将getConnections()方法放入onScroll方法中,并在其中放置一些日志并检查它是否onScroll方法以及您的方法是否正在执行?
标签: android listview android-listview onscrolllistener