Android 聊天界面实践

目录:

1.首先准备好9图

2.在 app/build.gradle 中添加依赖库,修改 activity_main.xml 中的代码

3.定义消息的实体类

4.编写 RecyclerView 子项的布局

5.创建 RecyclerView 的配置器类,新建类 MsgAdapter

6.修改 MainActivity 代码

结果:


1.首先准备好9图

类似微信聊天,聊天框是气泡,首先的学会制作   Nine-Patch 图片

参考:.9图  

参考:P136(146)


经处理,引入上面两图,分别命名为:message_left.9  、message_right.9,存到 drawable 下

2.在 app/build.gradle 中添加依赖库,修改 activity_main.xml 中的代码

注:这里的黄色是因为我这里用的7.26.+  后面是加号,在依赖项中使用+允许自动获取最新的可用版本,而不是特定的命名版本,这里我目前不懂,暂放,因为使用其他的会报错。

关于  layout_weight 

Android知识点剖析系列:深入了解layout_weight属性

android:layout_weight的真实含义

3.定义消息的实体类

新建  Msg.java,

4.编写 RecyclerView 子项的布局

新建  msg_item.xml  文件

关于 layout_gravity :

android:layout_gravity和android:gravity的区别

收到的消息左对齐,发出的消息右对齐

5.创建 RecyclerView 的配置器类,新建类 MsgAdapter

onBindViewHolder()  增加了对消息类型的判断,if 此消息是收到的,则显示左边的消息布局,如果是发出的,则显示右边的消息布局。

6.修改 MainActivity 代码

为 RecyclerView 初始化一些数据,并给发送按钮加入事件响应。

initMsgs() 方法中,我们先初始化几天数据用于在  RecyclerView 中显示。然后在发生按钮的点击事件里获取了 EditText 中的内容,如果内容不为 null 则建一个新的 Msg 对象,并把它添加到 msgList列表中去。之后又调用了适配器的 notifyItemInserted() 方法,用于通知列表有新的数据插入,这样新增的消息才能在 RecyclerView 显示。接着调用 RecyclerView 的 scrollToPosition() 方法将显示的数据定位到最后一行,以保证一定可以看到最后发出的一条信息。最后调用 EditText 的 setText 方法将输入的内容清空。

结果:


以上


写在最后:

完了,又被深深种草了一个东西 —— 漂移车手

今天有些厌学,思维莫名的排斥知识……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,843评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,851评论 0 17
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,726评论 2 45
  • 美是落叶入水荡起的层层涟漪之感,美是微风绕风铃激起的阵阵清脆之声,美是茗茶进口散发的缕缕清香之味,美是繁星饰空闪耀...
    金风玉露一相逢jinfeng阅读 1,131评论 0 1
  • 这世界人海茫茫 突然觉得好慌张 我找不到一张相似的脸孔 不得不学会一个人孤勇 太害怕活成自己讨厌的模样 唯唯诺诺 ...
    片羽时光梦安然阅读 1,690评论 0 3