gpt4 book ai didi

android - 具有多个 View 的 firebase 回收器适配器

转载 作者:行者123 更新时间:2023-11-29 14:13:12 24 4
gpt4 key购买 nike

我正在尝试为聊天应用程序创建我自己的自定义 firebase 回收器适配器。我想在适配器中膨胀两个 View ,一个用于发送方,一个用于接收方,但不知道如何操作。

我该如何处理?

最佳答案

要在 RecyclerView 中填充不同的 View ,您需要在适配器中实现此功能:

public int getItemViewType(int position);

此函数在 onCreateViewHolder 之前调用,并允许您根据要膨胀的 View 类型返回 int。您可以想象使用 enum 来实现这一点:

public enum TYPE {
SENDER,
RECEIVER
}

这样您将根据类型(使用 type.ordinal())返回一个 int。

然后您将在函数onCreateViewHolder(ViewGroup parent, int viewType) 上获得您的类型,您将能够再次匹配您的类型TYPE.values()[viewType]。这样,您将根据类型返回膨胀的布局。

最后在 onBindViewHolder(TimelineItemViewHolder holder, int position) 上,您将能够:

  • 调用 getItemViewType(int position) 了解如何转换和显示您的内容
  • 使用 instanceof 能够检测您正在查看的 ViewHolder 的类型
  • 使用一个抽象类,扩展由你的两个 ViewHolder 共享的 RecyclerView.ViewHolder,允许你调用一个公共(public)函数,比如 display(MyObject object)

关于android - 具有多个 View 的 firebase 回收器适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41884442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com