读书人

scrollview 兑现滑动到底部再滑动加载

发布时间: 2012-08-02 11:35:25 作者: rapoo

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 哈哈,学习了,找了半天

读书人网 >移动开发

热点推荐