在调用xxxAdapter的notifyDataSetChanged()方法后
Data data = new Data(respose, Data.RECEIVE);
mDatas.add(data);
adapter.notifyDataSetChanged();
listView.setSelection(mDatas.size());//调用此方法即可
注意这里的xxxAdapter是继承(extends)ArrayAdapter<>的
如果是其他的xxxAdapter即继承(extends)BaseAdapter等则调用listView.setSelection(adapter.getCount()-1);
来自http://blog.csdn.net/xiaoluoli88/article/details/45336267的三个方法
Method1:
mListView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
Method2:
set this attribute in XML
- android:transcriptMode="alwaysScroll"
Method3:
if the above two methods fail, you can try this:
you can manually tell the list to scroll to the bottom by setting the list selection to the last row.
private void scrollMyListViewToBottom() { myListView.post(new Runnable() { @Override public void run() { // Select the last row so it will scroll into view... myListView.setSelection(myListAdapter.getCount() - 1); } }); }
源码(图灵简陋聊天):https://github.com/Calo-missile/MyRobot