Android设置ScrollView滚动到底部和顶部

转载请备注原文地址: http://www.niwoxuexi.com/blog/android/article/221.html
我们在开发的过程中,经常会遇到ScrollView滚动到底部和顶部的情况,下面是一种简单的设置方法

1,设置ScrollView滚动到顶部
scrollView.fullScroll(ScrollView.FOCUS_UP);

2,设置ScrollView滚动到底部
scrollView.fullScroll(ScrollView.FOCUS_DOWN);

需要注意的是,该方法在页面还没有显示出来的时候是不能直接调用的。
因为Android很多函数都是基于消息队列来同步,在addView完之后,不等于马上就会显示,而是在队列中等待处理。这个时候调用会报错

应对方法通过handler在新线程中更新:例如:

Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
//设置ScrollView滚动到顶部
scrollView.fullScroll(ScrollView.FOCUS_UP);
//设置ScrollView滚动到顶部
//scrollView.fullScroll(ScrollView.FOCUS_DOWN);
}
});
当然网上还有另一种解决方案:有点复杂:调用用scrollTo()方法

public static void scrollToBottom(final View scroll, final View innerView) {
Handler handler = new Handler();
handler.post(new Runnable() {
public void run() {
if (scroll == null || innerView == null) {
return;
}
int offset = innerView.getMeasuredHeight() - scroll.getHeight();
if (offset < 0)
offset = 0;
scroll.scrollTo(0, offset);
}
});
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容