Android 具有多个视图的firebase回收器适配器
我正在尝试为聊天应用程序创建自己的自定义firebase回收器适配器。我想在适配器中放大两个视图,一个用于发送方,一个用于接收方,但不知道如何放大Android 具有多个视图的firebase回收器适配器,android,firebase,adapter,Android,Firebase,Adapter,我正在尝试为聊天应用程序创建自己的自定义firebase回收器适配器。我想在适配器中放大两个视图,一个用于发送方,一个用于接收方,但不知道如何放大 如何进行此操作?要在RecyclerView中放大不同的视图,您需要在适配器中实现此功能: public int getItemViewType(int position); 此函数在onCreateViewHolder之前调用,允许您根据要充气的视图类型返回int。您可以想象使用枚举来实现这一点: public enum TYPE { S
如何进行此操作?要在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,谢谢当给出答案时,最好是给出答案。给出答案时,最好是给出答案。我对堆栈上类似问题的详细回答应该有帮助:我对堆栈上类似问题的详细回答应该有帮助: