您的位置:首页 > 移动开发 > Android开发

Android的ListView数据更新后,如何使最新的条目可以自动滚动到可视范围内

2016-01-28 11:16 441 查看
在ListView的layout配置中添加 android:transcriptMode="alwaysScroll"

[html]
view plaincopy

<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:transcriptMode="alwaysScroll"
</ListView>

或者在Java代码中执行

[java]
view plaincopy

mListView = (ListView) view.findViewById(R.id.listview);
mListView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);

当数据改变的时候,在回调函数中使用ListView.setSelection()方法来定位到最后一行

[java]
view plaincopy

ChatAdapter adapter = new ChatAdapter(this);

ListView lv = (ListView) findViewById(R.id.chatList);
lv.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
lv.setAdapter(adapter);

adapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
super.onChanged();
lv.setSelection(adapter.getCount() - 1);
}
});

原文地址:http://blog.csdn.net/ouyang_peng
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: