目录:
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属性
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 方法将输入的内容清空。
结果:
以上
写在最后:
完了,又被深深种草了一个东西 —— 漂移车手
今天有些厌学,思维莫名的排斥知识……
网友评论