可在Activity中的dispatchTouchEvent(MotionEvent event)方法中解决
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
public class MainActivity extends Activity {
private ListView list;
private ArrayAdapter<String> adapter;
private boolean is_move;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = (ListView) findViewById(R.id.listview);
adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_expandable_list_item_1,getData());
list.setAdapter(adapter);
list.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView absListView, int i) {
if (is_move&&i== AbsListView.OnScrollListener.SCROLL_STATE_IDLE){
//说明滑动到底端
}
}
@Override
public void onScroll(AbsListView absListView, int i, int i1, int i2) {
is_move=(i+i1==i2);
}
});
}
public ArrayList<String> getData() {
ArrayList<String> arrayList = new ArrayList<>();
for (int i = 0; i < 30; i++) {
arrayList.add("AsenDy" + i);
}
return arrayList;
}