Android 具有多个视图的firebase回收器适配器

Android 具有多个视图的firebase回收器适配器,android,firebase,adapter,Android,Firebase,Adapter,我正在尝试为聊天应用程序创建自己的自定义firebase回收器适配器。我想在适配器中放大两个视图,一个用于发送方,一个用于接收方,但不知道如何放大 如何进行此操作?要在RecyclerView中放大不同的视图,您需要在适配器中实现此功能: public int getItemViewType(int position); 此函数在onCreateViewHolder之前调用,允许您根据要充气的视图类型返回int。您可以想象使用枚举来实现这一点: public enum TYPE { S

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


如何进行此操作?

要在RecyclerView中放大不同的视图,您需要在适配器中实现此功能:

public int getItemViewType(int position);
此函数在onCreateViewHolder之前调用,允许您根据要充气的视图类型返回int。您可以想象使用枚举来实现这一点:

public enum TYPE {
    SENDER,
    RECEIVER
}
这样,您将根据type.ordinal的类型返回一个int

然后,您将在函数onCreateViewHolderServicewGroup parent,int viewType上获得您的类型,您将能够再次匹配您的类型type.values[viewType]。这样,您将根据类型返回充气布局

最后,在OnBindViewHolder的InLineItemViewHolder的int位置上,您将能够:

调用getItemViewTypeint position以了解如何强制转换和显示内容 使用instanceof可以检测您正在查看的ViewHolder的类型 使用一个抽象类,扩展两个ViewHolder共享的RecyclerView.ViewHolder,允许您调用公共函数,如displayMyObject对象
要在RecyclerView中为不同视图充气,您需要在适配器中实现此功能:

public int getItemViewType(int position);
此函数在onCreateViewHolder之前调用,允许您根据要充气的视图类型返回int。您可以想象使用枚举来实现这一点:

public enum TYPE {
    SENDER,
    RECEIVER
}
这样,您将根据type.ordinal的类型返回一个int

然后,您将在函数onCreateViewHolderServicewGroup parent,int viewType上获得您的类型,您将能够再次匹配您的类型type.values[viewType]。这样,您将根据类型返回充气布局

最后,在OnBindViewHolder的InLineItemViewHolder的int位置上,您将能够:

调用getItemViewTypeint position以了解如何强制转换和显示内容 使用instanceof可以检测您正在查看的ViewHolder的类型 使用一个抽象类,扩展两个ViewHolder共享的RecyclerView.ViewHolder,允许您调用公共函数,如displayMyObject对象 也许这段代码能帮你实现快乐编码


也许这段代码能帮你实现快乐编码

@maxoumimd,Thanks@maxoumimd,谢谢当给出答案时,最好是给出答案。给出答案时,最好是给出答案。我对堆栈上类似问题的详细回答应该有帮助:我对堆栈上类似问题的详细回答应该有帮助: