• 聊天listview的消息自动更新显示在最后一行


    在调用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

    
    
    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. 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
  • 相关阅读:
    java中文件的读取和写入
    ==与equal在java中应用的感悟
    Gson心得小笔记
    几种排序的算法
    HttpClient的使用方法
    StringBuffer
    laravel5.5容器
    常用会话管理方式
    css一些事儿
    关于时间的梳理
  • 原文地址:https://www.cnblogs.com/banzhuan/p/6666460.html
Copyright © 2020-2023  润新知