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

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

2017-02-09 16:25 543 查看
在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);      

    }  

});  

 PS:http://stackoverflow.com/questions/3606530/listview-scroll-to-the-end-of-the-list-after-updating-the-list

 

 

        ====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址:http://blog.csdn.net/ouyang_peng

====================================================================================

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  listview
相关文章推荐