相关疑难解决方法(0)

如何使用多种视图类型创建RecyclerView?

来自https://developer.android.com/preview/material/ui-widgets.html

当我们创建时,RecyclerView.Adapter我们必须指定ViewHolder将与适配器绑定.

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

    private String[] mDataset;

    public MyAdapter(String[] myDataset) {
        mDataset = myDataset;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView mTextView;
        public ViewHolder(TextView v) {
            super(v);
            mTextView = v;
        }
    }

    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.some_layout, parent, false);

        //findViewById...

        ViewHolder vh = new ViewHolder(v);
        return vh;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.mTextView.setText(mDataset[position]);
    }

    @Override
    public int …
Run Code Online (Sandbox Code Playgroud)

user-interface android android-recyclerview

795
推荐指数
13
解决办法
39万
查看次数

如何在聊天应用程序上组织 RecyclerView 与不同类型的消息?

我开发聊天应用程序,有不同类型的消息:简单的文本、图像、文件等。也只有消息(其他,在屏幕左侧)和我的消息(在屏幕右侧)。

现在我对每种类型的消息都有不同的布局:

  • item_message_simple

  • item_my_message_simple

  • 项目消息图像

  • item_my_message_image

  • 项目消息文件

  • 项目我的消息文件

所有这些类型都在 RecyclerView.Adapter 中定义,并且 getItemViewType() 中有许多 if-else 条件

还可以回复和转发具有更复杂布局的消息。如果我想添加新的消息类型,那将是灾难。

那么如何更好地组织呢?也许它应该全部采用一种布局和 2 种类型:MESSAGE、MY_MESSAGE - 以及显示/隐藏部分布局。或者再次输入 2 种类型(MESSAGE、MY_MESSAGE)并在 ViewHolder 中填充所需的子布局。

请任何帮助!

android chat android-layout android-recyclerview

5
推荐指数
1
解决办法
2229
查看次数