Android 聊天界面實踐

目錄:

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屬性

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é)僧鲁,思維莫名的排斥知識……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末虐呻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子寞秃,更是在濱河造成了極大的恐慌斟叼,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件春寿,死亡現(xiàn)場離奇詭異朗涩,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)绑改,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門谢床,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人厘线,你說我怎么就攤上這事识腿。” “怎么了造壮?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵渡讼,是天一觀的道長。 經(jīng)常有香客問我耳璧,道長成箫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任旨枯,我火速辦了婚禮蹬昌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攀隔。我一直安慰自己凳厢,他們只是感情好账胧,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著先紫,像睡著了一般治泥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上遮精,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天居夹,我揣著相機(jī)與錄音,去河邊找鬼本冲。 笑死准脂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的檬洞。 我是一名探鬼主播狸膏,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼添怔!你這毒婦竟也來了湾戳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤广料,失蹤者是張志新(化名)和其女友劉穎砾脑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艾杏,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡韧衣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了购桑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畅铭。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖勃蜘,靈堂內(nèi)的尸體忽然破棺而出顶瞒,到底是詐尸還是另有隱情,我是刑警寧澤元旬,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布榴徐,位于F島的核電站,受9級特大地震影響匀归,放射性物質(zhì)發(fā)生泄漏坑资。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一穆端、第九天 我趴在偏房一處隱蔽的房頂上張望袱贮。 院中可真熱鬧,春花似錦体啰、人聲如沸攒巍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柒莉。三九已至闻坚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兢孝,已是汗流浹背窿凤。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留跨蟹,地道東北人雳殊。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像窗轩,于是被迫代替她去往敵國和親夯秃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,732評論 25 707
  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程痢艺,因...
    小菜c閱讀 6,365評論 0 17
  • afinalAfinal是一個android的ioc仓洼,orm框架 https://github.com/yangf...
    passiontim閱讀 15,406評論 2 45
  • 美是落葉入水蕩起的層層漣漪之感衬潦,美是微風(fēng)繞風(fēng)鈴激起的陣陣清脆之聲斤蔓,美是茗茶進(jìn)口散發(fā)的縷縷清香之味植酥,美是繁星飾空閃耀...
  • 這世界人海茫茫 突然覺得好慌張 我找不到一張相似的臉孔 不得不學(xué)會一個人孤勇 太害怕活成自己討厭的模樣 唯唯諾諾 ...
    片羽時光夢安然閱讀 238評論 0 3