Android 聊天界面实践

目录:

1.首先准备好9图

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

3.定义消息的实体类

4.编写 RecyclerView 子项的布局

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

6.修改 MainActivity 代码

结果:


1.首先准备好9图

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

参考:.9图  

Android 聊天界面实践_第1张图片

参考:P136(146)


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

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

Android 聊天界面实践_第2张图片

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

关于  layout_weight 

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

android:layout_weight的真实含义

Android 聊天界面实践_第3张图片

3.定义消息的实体类

新建  Msg.java,

Android 聊天界面实践_第4张图片

4.编写 RecyclerView 子项的布局

新建  msg_item.xml  文件

关于 layout_gravity :

android:layout_gravity和android:gravity的区别

Android 聊天界面实践_第5张图片

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

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

Android 聊天界面实践_第6张图片
Android 聊天界面实践_第7张图片

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

6.修改 MainActivity 代码

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

Android 聊天界面实践_第8张图片

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

结果:

Android 聊天界面实践_第9张图片


以上


写在最后:

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

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

你可能感兴趣的:(Android 聊天界面实践)