ScrollView加载完数据后自动滑动到底部

时间:2021-05-11 19:42:57

 之前一直纠结一个问题就是通过代码往ScrollView加入一些需要显示的view,通过addView来加入view,由于addView是通过队列消息的模式加入的,如果仅仅在之后加入scrollview.fullScroll(View.FOCUS_DOWN),无法达到效果。
 而使用 scrollview.post(new Runnable() {
                                public void run() {
                                    scrollview.fullScroll(View.FOCUS_DOWN);
                                }
                            });
 也不行,当add的view非常多时,只会滑动到中间,而delay一些时间,虽然效果好一点,但是还是没有完全解决,最后找到一个比较好的解决办法,就是使用下面的代码即可
scrollview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                        @Override
                        public void onGlobalLayout() {
                            scrollview.post(new Runnable() {
                                public void run() {
                                    scrollview.fullScroll(View.FOCUS_DOWN);
                                }
                            });
                        }
                    });