【问题标题】:How to send images and text messages with Firebase having different xml layout?如何使用具有不同 xml 布局的 Firebase 发送图像和文本消息?
【发布时间】:2018-08-02 19:36:19
【问题描述】:

好的,我可以像任何简单的聊天应用程序一样发送短信。现在我也想发送图像(之后可能是pdf等附件)。所以短信和图片的布局会有所不同。

目前我有一个适配器类,数据在 recyclerView 中接收。下面是我的适配器类:

public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.ViewHolder> {

public List<TextMessage> messageList;
public Context context;

public MessageAdapter(List<TextMessage> messageList){
    this.messageList = messageList;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_text_message,parent,false);
    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    holder.Text.setText(messageList.get(position).getMessage());
}

@Override
public int getItemCount() {
    return messageList.size();
}

public class ViewHolder extends RecyclerView.ViewHolder{

    View mView;
    public TextView Text;

    public ViewHolder(View itemView) {
        super(itemView);
        mView = itemView;
        Text = mView.findViewById(R.id.textView_message_text);
    }
}

}

如果我也有图像布局怎么办?有没有办法组合布局?或者制作不同的布局文件以及不同的模型类?我应该如何处理这个?我不想要任何代码。只是这种情况的前进方向。

【问题讨论】:

    标签: android firebase android-recyclerview


    【解决方案1】:

    您可以根据 viewType 拥有多种类型的视图持有者。您必须覆盖 getViewType 并返回视图类型 int 让我们说 1 用于视频和 2 用于消息(您需要根据应用程序中的数据构建该逻辑),然后在 onCreateViewHolder 方法中使用 viewType 变量您可以决定您想要哪个视图持有者显示

    【讨论】:

    • 很高兴 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多