ScrollView允许内容超过屏幕大小,滚动进行查看。它必须包含子控件。下面的边积累边写吧
1、判断ScrollView已经滚动到的位置,从而进行操作。
如判断ScrollView是否已经滚动至底部,从而加载更多内容。判断ScrollView是否已经滚动至顶部,从而刷新内容。
原理通过比较ScrollView的纵向位置,判断是否已经到顶部或底部,代码如下:
- public ScrollView scrollView;
- private int scrollViewY;
- scrollView = (ScrollView)findViewById(R.id.viewStatusDetailSV);
- scrollView.setOnTouchListener(new OnTouchListener() {
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- if (event.getAction() == MotionEvent.ACTION_UP) {
- /** 滑动到顶部和底部做处理 **/
- if (scrollView.getScrollY() == 0) {
- Toast.makeText(context, "到达顶部了", Toast.LENGTH_SHORT).show();
- } else if (scrollView.getScrollY() - scrollViewY < 2 && scrollView.getScrollY() >= scrollViewY) {
- Toast.makeText(context, "到达底部了" + scrollView.getScrollY(), Toast.LENGTH_SHORT).show();
- } else {
- scrollViewY = scrollView.getScrollY();
- }
- }
- return false;
- }
- });
为了精确度问题scrollView.getScrollY() - scrollViewY < 2差2个pixels时已经当作到达底部
2、将ScrollView滚动到某个位置
使用scrollView.scrollTo(x, y)滚动到某个位置,如scrollView.scrollTo(0, 0)表示滚动到顶部