這里有兩種辦法,第一種,使用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.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在新線程中更新
handler.post(new Runnable() { @Override public void run() { scrollView.fullScroll(ScrollView.FOCUS_DOWN); } });