上次聊天的那个界面上用的一个TextView,然后每次消息都用text.append("消息内容"+"\n")函数来在text字符串后边接一段,然后重新显示这个内容。

  现在需要美化界面,将消息内容放到一个ListView里边,每个消息是一个Item,然后进行显示,效果图如图所示:

  那么问题来了,我每次有新的消息的时候,都会排列在上一个Item的下方,即使到了最底下,最新的消息也会沉到最下边,显示不出来,需要手动滑动屏幕来显示最新消息,显然是不符合实际要求的。于是想了一个办法,让他每次都显示ListView的最后一个Item,我是看的别人的CSDN博客(这里附上Ta的博客链接http://blog.csdn.net/snow12342234/article/details/49794507),这里直接照搬过来,然后供自己以后学习参考:

  

  其实listView元素直接在xml里就可以简单定义实现好这个效果,附带实现的方法三个。
 
  方法1:直接在layout里对listView的属性定义
    StackFromBottom: true
    Transcript Mode: alwayScroll
 
  方法2: 把上面的方法改为java代码的方式声明
    listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
    listView.setStackFromBottom(true);
 
  方法3: 变通的做法 把焦点focus去listView的最后一个item,那自然就是显示最底部
    每次适配器 adapter.notifyDataSetChanged() 之后要记得调用,略麻烦
    注意要用 post的方法确保listview的数据已经加载完毕
private void scrollMyListViewToBottom() {
listView.post(new Runnable() {
@Override
public void run() {
// Select the last row so it will scroll into view...
listView.setSelection(listAdapter.getCount() - 1);
}
});
}

  好了,这三种方法我没有全部尝试,只是用了第二种,直接设置ListView,然后看效果就变成了这样:

  程序还在完善中,回头还会再来补充......

最新文章

  1. GPUImage滤镜之自然饱和度
  2. HTTPS(SSL/TLS) 原理之深入浅出
  3. IRP IO_STACK_LOCATION 《寒江独钓》内核学习笔记(1)
  4. iOS 利用constraint实现2个控件上下的空白是相等的
  5. 1.1 MySQL 逻辑架构
  6. Apache Hadoop最佳实践和反模式
  7. UVA 11402 - Ahoy, Pirates!(段树)
  8. [原]左右的移动<<>><>jQuery的实现
  9. LINUX centos 7.2/7.3 搭建LANP环境
  10. eclipse:Workspace in use or cannot be created
  11. VC++ 6.0中添加库文件和头文件
  12. Chapter 4 : Control Structures 1 : Selection
  13. 学号 20175223 《Java程序设计》第9周学习总结
  14. python中的字典
  15. Elasticsearch - Scroll
  16. C. Party Lemonade
  17. pgm17
  18. array_multisort
  19. linux wheel组
  20. Xen4CentOS 帮你移植到 CentOS 6 和 Xen 4

热门文章

  1. PHP continue break 区别 用法
  2. 2018-01-13 view绘制流程-activity启动流程-window-decorView-ViewRootImpl关系
  3. uva1659(最大费用循环流)
  4. 2016-2017-2 20155326实验二《Java面向对象程序设计》实验报告
  5. POJ3111 K Best 2017-05-11 18:12 31人阅读 评论(0) 收藏
  6. Windows 8.1 Update中的小改变
  7. JAVA本地读取文件,解决中文乱码问题
  8. python模块补充
  9. [mysql] mysql 查询语句收集
  10. E - Evaluate Matrix Sum