UI组件Android开发经验谈Android开发

Android 聊天界面实践

2017-09-01  本文已影响866人  Ansaxnsy

目录:

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 方法将输入的内容清空。

结果:

以上


写在最后:

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

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

上一篇 下一篇

猜你喜欢

热点阅读