安卓使ScrollView滚动到底部代码

在开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等,

这里有两种办法,第一种,使用scrollTo():

public static void scrollToBottom(final View scroll, final View inner) {
  // 何问起 hovertree.com
Handler mHandler = new Handler();  

mHandler.post(new Runnable() {
public void run() {
if (scroll == null || inner == null) {
return;
}
int offset = inner.getMeasuredHeight() - scroll.getHeight();
if (offset < 0) {
offset = 0;
}  

scroll.scrollTo(0, offset);
}
});
}  

第一种实现相对比较麻烦,更推荐使用第二种方式,使用fullScrol()

下面我们看一下这个函数:

scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部

scrollView.fullScroll(ScrollView.FOCUS_UP);滚动到顶部

需要注意的是,该方法不能直接被调用
因为Android很多函数都是基于消息队列来同步,所以需要一部操作,
addView完之后,不等于马上就会显示,而是在队列中等待处理,虽然很快,但是如果立即调用fullScroll, view可能还没有显示出来,所以会失败
应该通过handler在新线程中更新

// 何问起 hovertree.com
handler.post(new Runnable() {
    @Override
    public void run() {
        scrollView.fullScroll(ScrollView.FOCUS_DOWN);
    }
});  

http://www.cnblogs.com/roucheng/p/androidservice.html

时间: 2024-10-15 12:40:59

安卓使ScrollView滚动到底部代码的相关文章

Android 控制ScrollView滚动到底部

这里有两种办法,第一种,使用scrollTo(): ublic static void scrollToBottom(final View scroll, final View inner) { Handler mHandler = new Handler(); mHandler.post(new Runnable() { public void run() { if (scroll == null || inner == null) { return; } int offset = inner

Android 控制ScrollView滚动到底部或顶部

在开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等, 这里有两种办法,第一种,使用scrollTo(): [java] view plaincopy public static void scrollToBottom(final View scroll, final View inner) { Handler mHandler = new Handler(); mHandler.post(new Runnable() { public void run() { if 

jquery使页面滚动到底部

function scrollToEnd(){//滚动到底部 var h = $(document).height()-$(window).height(); $(document).scrollTop(h); } (摘抄自http://www.cnblogs.com/hui-blog/p/5526278.html)

scrollView滚动(通过代码)

平时的开发中可能会要求scrollview滚动,一般的方法时通过scrollview.scrollto(0,1000);来实现,但是注意这个方法是在scrollview停止动画之后才能执行的,因为如果scrollview动画不停止,那么久没法确定scrollview的位置.所以scrollview.postDelay(new Runnable(){public void run() { sv.smoothScrollTo(0,sv.getBottom()); } },5 )); 也有人通过scr

关于 ScrollView 中嵌套 EditText,输入多行会使整体滚动的问题

问题: ScrollView 中嵌套 EditText,在 EditText 中输入多行,会使 ScrollView 整体滚动.如果下方内容较长,会将 EditText 顶上去,体验不好. 解决: 监听键盘的弹出和收起,在弹出时,移除 EditText 下方的所有 View,使 ScrollView 没有滚动空间:在键盘收起时,将移除的 View 重新添加回来. 注意两个问题: 在 Activity 中,设置 this.getWindow().setSoftInputMode( WindowMa

iOS scrollView/tableView滚动到底部

//项目要求tableView滚动到底部就自动加载下一页,UITableView继承自UIScrollView 所以可以在//scrollViewDidEndDecelerating这个方法中进行判断操作 1 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ 2 if (scrollView == myScrollView) { 3 CGPoint offset = myScrollView.contentOffset

Android ScrollView 滚动机制

Android ScrollView 滚动机制 我们都知道通过View#scrollTo(x,y)既可以实现将View滚动的效果,如果再添加Scroller类,就可以实现滚到效果.但是,这背后是如何实现的呢?这个问题涉及到View的绘图机制.我们先看看View的绘图的基本流程 (图片来自于网上比较常见的view绘图流程图) 关于三个阶段的简单描述: 1. measure:预估计ViewTree的各个View的占用空间. 2. layout :   确定ViewTree中各个View所处的空间位置

Android ScrollView 滚动到顶部

有时候使用ScrollView,里边控件比较多的时候,打开界面,会滑到底部,如果要设置滑动到顶部,一般有两种方法 1.使用fullScrol(),scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部 scrollView.fullScroll(ScrollView.FOCUS_UP);滚动到顶部 需要注意的是,该方法不能直接被调用 因为Android很多函数都是基于消息队列来同步,所以需要一部操作, addView完之后,不等于马上就会显示,而是在

jquery获取窗口高度的方法及判断scroll滚动到底部

$(window).height()     获取的是当前可视窗口的高度,也就是用户能看到的窗口的高度,是不变的(在窗口大小不变的前提下)$(document).height()  获取的是窗口内文档的高度,这个高度随着文档内容的高度改变而改变 当窗口滚动条滚到最低端时,$(document).height() == $(window).height() + $(window).scrollTop().当窗口内文档高度不足浏览器窗口高度时,$(document).height()返回的是$(wi