scrollview 实现滑动到底部再滑动加载数据的功能
思路:在滑动基础上添加scrollview到底检测事件
1.首先检测是否滑动
?
此段格式不知道怎么删除!?
// 滑动加载scrollView.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubswitch (event.getAction()) {case MotionEvent.ACTION_DOWN :break;case MotionEvent.ACTION_MOVE ://检查滑动事件 Log.d(TAG,"滑到底部");break;default :break;}}});?
2.对scrollview添加到底检测监听事件
?
但是scrollview 不能像listview那样添加onscrolllistener监听,所以需要自己检测
?
if (view.getMeasuredHeight() <= v.getScrollY() + v.getHeight()) { //到底部 Log.d(TAG,"滑到底部");}?
?3.组合代码
?
// 滑动加载scrollView.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubswitch (event.getAction()) {case MotionEvent.ACTION_DOWN :break;case MotionEvent.ACTION_MOVE :View view = ((ScrollView) v).getChildAt(0);if (view.getMeasuredHeight() <= v.getScrollY() + v.getHeight()) {//加载数据代码}break;default :break;}}});?4.测试的时候 发现这样会导致滑动多次触发,所以优化代码如下
?
private int index = 0;// 滑动加载scrollView.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubswitch (event.getAction()) {case MotionEvent.ACTION_DOWN :break;case MotionEvent.ACTION_MOVE :index++;break;default :break;}if (event.getAction() == MotionEvent.ACTION_UP && index > 0) {index = 0;View view = ((ScrollView) v).getChildAt(0);if (view.getMeasuredHeight() <= v.getScrollY() + v.getHeight()) {//加载数据代码}}return false;}});??
?
2 楼 yl721yl 2012-01-12 哈哈,学习了,找了半天