CommentDialog
这是一个 Android 评论框,类似抖音评论弹框

看不到图片的可以访问链接: https://img-blog.csdnimg.cn/20191223183926488.jpg https://img-blog.csdnimg.cn/20191223183944984.jpg https://img-blog.csdnimg.cn/20191223184007906.jpg
最近公司有个需求,就是仿抖音弹窗评论,我也是在网上找了一些资料, 并未找到有人实现了此功能,于是我就根据一些资料自己去实现。
这个弹窗可以用 Design 中的 BottomSheetDialog 来实现,可以完全把它当做一个 dialog 来做, 在 dialog 基础上又增加了下拉回弹 下拉关闭效果, 不过我对这个也不太熟,仅仅在此使用了一次,所以对这个就不过多的说明了。 整个功能包括:添加一级评论 添加二级评论 点赞 回复二级评论
具体实现
外框是 BottomSheetDialog,布局主要是一个 Recyclerview,由于二级评论的原因,我用了 2 种方式去实现,主要是数据的区别
1、整个列表使用 Recyclerview:一级评论为 Item 二级评论使用 LinearLayout 来动态增加,其中回复的二级评论使用富文本 SpannableString,可点击 数据格式 List<一级评论 bean>, 一级评论的实体类中包含了二级评论列表 在 adapter 中把二级评论 List 传入自定义的 Linearlayout 让其动态添加 view
未解决问题:由于动态添加的 view 过多时 会使得相应的 Item 高度过长 甚至超过整个屏幕的高度 导致滑动有些卡顿 也许是加载数据方式不对,很多地方需要优化导致的卡顿 由于我经验尚不足,未发现具体原因 有发现原因的欢迎探讨指教
2、整个列表使用 Recyclerview:一级评论、二级评论、展示更多均为 Item adapter 根据类型去加载相应的 item 也就是说任何一条评论都为一个 item 根据普通的多类型列表去加载即可 暂未发现问题 滑动也比较流畅等
就是一些细节处理较为麻烦:比如添加了一条评论 如何滑动到相应的位置等
参考
解决 BottomSheetDialog 中的 RecyclerView 要点击两次才能触发点击事件的问题
about
如果我的代码对你有帮助,请给我一个 star
