CommentDialog
項(xiàng)目github地址:CommentDialog
這是一個(gè)Android評(píng)論框桩警,類似抖音評(píng)論彈框
最近公司有個(gè)需求,就是仿抖音彈窗評(píng)論昌妹,我也是在網(wǎng)上找了一些資料捶枢,并未找到有人實(shí)現(xiàn)了此功能,于是我就根據(jù)一些資料自己去實(shí)現(xiàn)
這個(gè)彈窗可以用 Design 中的BottomSheetDialog來(lái)實(shí)現(xiàn)飞崖。
可以完全把它當(dāng)做一個(gè)dialog來(lái)做烂叔,在dialog基礎(chǔ)上又增加了下拉回彈 下拉關(guān)閉效果,
不過(guò)我對(duì)這個(gè)也不太熟固歪,僅僅在此使用了一次蒜鸡,所以對(duì)這個(gè)就不過(guò)多的說(shuō)明了胯努。
整個(gè)功能包括:添加一級(jí)評(píng)論 添加二級(jí)評(píng)論 點(diǎn)贊 回復(fù)二級(jí)評(píng)論
具體實(shí)現(xiàn)
外框是BottomSheetDialog,布局主要是一個(gè)Recyclerview逢防,由于二級(jí)評(píng)論的原因叶沛,我用了2種方式去實(shí)現(xiàn),主要是數(shù)據(jù)的區(qū)別
1忘朝、整個(gè)列表使用Recyclerview:
一級(jí)評(píng)論為Item 二級(jí)評(píng)論使用LinearLayout來(lái)動(dòng)態(tài)增加灰署,其中回復(fù)的二級(jí)評(píng)論使用富文本SpannableString,可點(diǎn)擊
數(shù)據(jù)格式List<一級(jí)評(píng)論bean>辜伟, 一級(jí)評(píng)論的實(shí)體類中包含了二級(jí)評(píng)論列表
在adapter中把二級(jí)評(píng)論List傳入自定義的Linearlayout 讓其動(dòng)態(tài)添加view
未解決問(wèn)題:由于動(dòng)態(tài)添加的view過(guò)多時(shí) 會(huì)使得相應(yīng)的Item高度過(guò)長(zhǎng) 甚至超過(guò)整個(gè)屏幕的高度 導(dǎo)致滑動(dòng)有些卡頓氓侧,也許是加載數(shù)據(jù)方式不對(duì),很多地方?jīng)]有優(yōu)化而導(dǎo)致的卡頓导狡, 由于我經(jīng)驗(yàn)尚不足约巷,未發(fā)現(xiàn)具體原因
2、整個(gè)列表使用Recyclerview:一級(jí)評(píng)論旱捧、二級(jí)評(píng)論独郎、展示更多均為Item adapter根據(jù)類型去加載相應(yīng)的item
也就是說(shuō)任何一條評(píng)論都為一個(gè)item 根據(jù)普通的多類型列表去加載即可
暫未發(fā)現(xiàn)問(wèn)題 滑動(dòng)也比較流暢等 就是一些細(xì)節(jié)處理較為麻煩
比如添加了一條評(píng)論 如何滑動(dòng)到相應(yīng)的位置等