目錄:
1.首先準(zhǔn)備好9圖
2.在 app/build.gradle 中添加依賴庫泛范,修改 activity_main.xml 中的代碼
3.定義消息的實體類
4.編寫 RecyclerView 子項的布局
5.創(chuàng)建 RecyclerView 的配置器類,新建類 MsgAdapter
6.修改 MainActivity 代碼
結(jié)果:
1.首先準(zhǔn)備好9圖
類似微信聊天矗烛,聊天框是氣泡趴泌,首先的學(xué)會制作?? Nine-Patch 圖片
參考:.9圖??
參考:P136(146)
經(jīng)處理告组,引入上面兩圖誉察,分別命名為:message_left.9? 、message_right.9惹谐,存到 drawable 下
2.在 app/build.gradle 中添加依賴庫持偏,修改 activity_main.xml 中的代碼
注:這里的黃色是因為我這里用的7.26.+? 后面是加號,在依賴項中使用+允許自動獲取最新的可用版本氨肌,而不是特定的命名版本鸿秆,這里我目前不懂,暫放怎囚,因為使用其他的會報錯卿叽。
關(guān)于? layout_weight?
Android知識點剖析系列:深入了解layout_weight屬性
3.定義消息的實體類
新建? Msg.java,
4.編寫 RecyclerView 子項的布局
新建? msg_item.xml? 文件
關(guān)于 layout_gravity :
android:layout_gravity和android:gravity的區(qū)別
收到的消息左對齊恳守,發(fā)出的消息右對齊
5.創(chuàng)建 RecyclerView 的配置器類考婴,新建類 MsgAdapter
onBindViewHolder()? 增加了對消息類型的判斷,if 此消息是收到的催烘,則顯示左邊的消息布局沥阱,如果是發(fā)出的,則顯示右邊的消息布局伊群。
6.修改 MainActivity 代碼
為 RecyclerView 初始化一些數(shù)據(jù)考杉,并給發(fā)送按鈕加入事件響應(yīng)策精。
initMsgs() 方法中,我們先初始化幾天數(shù)據(jù)用于在? RecyclerView 中顯示崇棠。然后在發(fā)生按鈕的點擊事件里獲取了 EditText 中的內(nèi)容咽袜,如果內(nèi)容不為 null 則建一個新的 Msg 對象,并把它添加到 msgList列表中去枕稀。之后又調(diào)用了適配器的 notifyItemInserted() 方法询刹,用于通知列表有新的數(shù)據(jù)插入,這樣新增的消息才能在 RecyclerView 顯示萎坷。接著調(diào)用 RecyclerView 的 scrollToPosition() 方法將顯示的數(shù)據(jù)定位到最后一行凹联,以保證一定可以看到最后發(fā)出的一條信息。最后調(diào)用 EditText 的 setText 方法將輸入的內(nèi)容清空食铐。
結(jié)果:
以上
寫在最后:
完了,又被深深種草了一個東西 —— 漂移車手
今天有些厭學(xué)僧鲁,思維莫名的排斥知識……