美文网首页
【Android】ScrollView滚动到底部的几种方式

【Android】ScrollView滚动到底部的几种方式

作者: FynnJason | 来源:发表于2017-05-22 17:04 被阅读1222次

    前言:

    当我们在使用ScrollView的时候,当前页面超出Scrollview显示页面需要自动滚动到底部时,发现不能完全滚动到底部。这是因为Android下很多函数都是基于消息的,用消息队列来保证同步,所以函数条用多数是异步操作的。当给ScrollView嵌套的布局设置内容时,不会马上显示出来,而是将内容添加到消息队列之后立刻返回,当ScrollView滚动时,添加的内容可能还没显示出来,自然无法滚动到正确的位置。这里给出2种常用的方式:

    一、调用post方法

    mScrollview.post(new Runnable() {
                                    public void run() {
                                        mScrollview.fullScroll(View.FOCUS_DOWN);
                                    }
                                });
    

    优点:代码简单。

    缺点:当同时添加多个内容时,会出现不能滚动到底部。

    二、调用addOnGlobalLayoutListener方法

    mScrollview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                            @Override
                            public void onGlobalLayout() {
                                mScrollview.post(new Runnable() {
                                    public void run() {
                                        mScrollview.fullScroll(View.FOCUS_DOWN);
                                    }
                                });
                            }
                        });
    

    优点:当同时添加多个内容时,可以滚动到底部。

    缺点:代码稍多。

    相关文章

      网友评论

          本文标题:【Android】ScrollView滚动到底部的几种方式

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