在開發中,我們經常需要更新列表,並將列表拉倒最底部,比如發表微博,聊天界面等等, 這裡有兩種辦法,第一種,使用scrollTo(): 第一種實現相對比較麻煩,更推薦使用第二種方式,使用fullScrol() 下麵我們看一下這個函數: scrollView.fullScroll(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