上次聊天的那个界面上用的一个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,然后看效果就变成了这样:

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

设置ListView显示到最后一行的更多相关文章

  1. Android 设置ListView当前显示的item

    项目中可能会有这种需求:动态设置ListView显示的item 这种需求可能会出现在不同的情况下,有的是打开页面就要显示在特定的位置,也有的是浏览列表时实时更新数据并且改变了集合中数据,或者是某种条件 ...

  2. listview显示固定条数

    看了很多网上其他大神的,感觉还是在listview的adapter中的getCount中下手比较好点 毕竟计算高度等等,那会让辅助的布局会一团糟,例如下面的搜索历史只显示四条,布局中有横向listvi ...

  3. ScrollView嵌套listview显示一行bug

    首先看看修复bug之后的显示对比图,结果一目了然 显示一行之前 修改bug之后 主要就是ScrollView嵌套listview显示计算  直接上代码   一目了然 <com.wechaotou ...

  4. ScrollView嵌套ListView显示不完全、嵌套TextView不能滚动解决办法

    目录: 一.情景说明 二.最初做法 三.解决办法 一.情景说明 1.情景       最近项目刚好有一个需求,需要在一个界面中用ScrollView嵌套一个滚动的TextView和一个listView ...

  5. 实现ScrollView中包含ListView,动态设置ListView的高度

    ScrollView 中包含 ListView 的问题 : ScrollView和ListView会冲突,会导致ListView显示不全 <?xml version="1.0" ...

  6. android 多个listView的向下滚动设置 listView动态设置高度代码

    墨迹天气图: 这里都是用的android里面的shape实现的,实现起来比较简单,只是在滚动的时候有点小麻烦... 当我们多个ListView超出了它的父控件LinearLayout的时候,它们每个L ...

  7. Android 设置ListView不可滚动 及在ScrollView中不可滚动的设置

    http://m.blog.csdn.net/blog/yusewuhen/43706169 转载请注明出处: http://blog.csdn.net/androiddevelop/article/ ...

  8. Android在ListView显示图片(重复混乱闪烁问题)

    Android在ListView显示图片(重复混乱闪烁问题) 1.原因分析 ListView item缓存机制: 为了使得性能更优,ListView会缓存行item(某行相应的View). ListV ...

  9. android中设置ListView的选中的Item的背景颜色

    ListView中没有默认的选择颜色,只有选择Item后的焦点颜色,鼠标点击时Item有颜色,放开鼠标后颜色也就没有了,要实现放开鼠标后选择项的背景还是有颜色的. 1.配置main.xml <? ...

随机推荐

  1. mui框架如何实现页面间传值

    mui框架如何实现页面间传值 我的传值 listDetail = '<li class="mui-table-view-cell mui-media>">< ...

  2. 利用putty在window下控制linux的terminal、ftp传输

    google搜索putty,可能要FQ才能进入官方网站下载. 首先将虚拟机下的linux的网络适配器设置成桥接模式,并且将linux系统的firewall和iptables(防火墙关闭). firew ...

  3. 2017-2018-1 20155326 《信息安全系统设计基础》第四周学习总结及myod改进版的补交

    2017-2018-1 20155326 <信息安全系统设计基础>第四周学习总结及myod改进版的补交 学习内容 补充完成课上没有完成的内容 学习教材附录A,第十章内容 参考别出心裁的Li ...

  4. hdu 5072 两两(不)互质个数逆向+容斥

    http://acm.hdu.edu.cn/showproblem.php?pid=5072 求n个不同的数(<=1e5)中有多少组三元组(a, b, c)两两不互质或者两两互质. 逆向求解,把 ...

  5. 服务器重启报错:提示fstab readonly报错!( /etc/fstab 只读无法修改的解决办法)

    摘自:http://blog.csdn.net/gray13/article/details/7432866 一.问题描述:服务器重启报错:提示fstab readonly报错! 二.问题原因:挂载的 ...

  6. 调用DLL窗体-Delphi实例

    (一)通过向导DLL Wizard新建一个动态链接库,取名为:DLLPro.dpr.说明:当在DLL工程文件中使用了String类型时,要有 uses ShareMem ,不过建议使用PChar类型. ...

  7. IDHTTP的基本用法

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  8. iOS图片按比例显示

    只需加这么一段代码,如下: imageView.contentMode = UIViewContentModeScaleAspectFit; imageView.autoresizesSubviews ...

  9. 在.net中使用ETW事件的方法

    直到.net4.5,才有了比较便利的操作ETW的方法. 本文介绍的方法主要来源于Microsoft.Diagnostics.Tracing.TraceEvent官方资料库. 准备 (1)需要用到类:M ...

  10. Opencv4.0:遍历Mat图像空间、读取摄像头

    GitHub https://github.com/gongluck/Opencv3.4-study.git #include "opencv2/opencv.hpp" using ...