美文网首页
Android设置ScrollView滚动到底部和顶部

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

作者: cheng2290 | 来源:发表于2017-08-10 10:02 被阅读0次

    转载请备注原文地址: 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);
    }
    });
    }

    相关文章

      网友评论

          本文标题:Android设置ScrollView滚动到底部和顶部

          本文链接:https://www.haomeiwen.com/subject/rkncrxtx.html