如何实现 Android 像 iOS UITableView 这样的多项目列表视图
How to implement Android Multi-item listview like iOS UITableView
现在我正在 Android 应用程序中实现聊天屏幕。
使用 ListView 的适配器模式似乎是最好的一个单元格。
您知道您需要在聊天屏幕中使用不同类型的用户消息、照片、视频、日期、公告等单元格。
我知道的常规方法有两种。
- 在getView()方法中,每次创建一个新类型的单元格。
- 首先,放入所有项目,然后在 getView() 方法中,通过 VISIBLE/GONE 选项调整 UI 布局。
我认为第二种方法更好,但这种方法仍然浪费内存且实现起来很复杂。
对于 iOS 的 UITableView 按单元格类型的数量生成多个队列。它在 Multi-Item ListView 中很有效。
有什么简单的方法可以实现 iOS?
考虑使用此库 JSQMessagesViewController 它非常灵活且可扩展。
使用 RecyclerView 代替 ListView
。
为每个项目视图创建 xml
文件。为每个文件 xml
.
创建 ViewHolder
RecyclerView
的 Adapter
覆盖 getItemViewType()
return 视图类型与其位置相对应。覆盖 onCreateViewHodler
与视图类型对应的 return ViewHolder
。最后,覆盖 onBindViewHolder
将您的数据绑定到您的布局。
现在我正在 Android 应用程序中实现聊天屏幕。 使用 ListView 的适配器模式似乎是最好的一个单元格。 您知道您需要在聊天屏幕中使用不同类型的用户消息、照片、视频、日期、公告等单元格。
我知道的常规方法有两种。
- 在getView()方法中,每次创建一个新类型的单元格。
- 首先,放入所有项目,然后在 getView() 方法中,通过 VISIBLE/GONE 选项调整 UI 布局。
我认为第二种方法更好,但这种方法仍然浪费内存且实现起来很复杂。
对于 iOS 的 UITableView 按单元格类型的数量生成多个队列。它在 Multi-Item ListView 中很有效。 有什么简单的方法可以实现 iOS?
考虑使用此库 JSQMessagesViewController 它非常灵活且可扩展。
使用 RecyclerView 代替 ListView
。
为每个项目视图创建 xml
文件。为每个文件 xml
.
ViewHolder
RecyclerView
的 Adapter
覆盖 getItemViewType()
return 视图类型与其位置相对应。覆盖 onCreateViewHodler
与视图类型对应的 return ViewHolder
。最后,覆盖 onBindViewHolder
将您的数据绑定到您的布局。