zoukankan      html  css  js  c++  java
  • 聊天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
  • 相关阅读:
    线程唤醒
    以前、现在
    黑马程序员训练营基础测试
    流程图
    线程同步
    Thread联系
    Java线程
    Java中文件流笔记
    字符串习题
    匿名内部类
  • 原文地址:https://www.cnblogs.com/banzhuan/p/6666460.html
Copyright © 2011-2022 走看看