Android 是否可以在Recyclerview中创建如下所示的自定义布局?

Android 是否可以在Recyclerview中创建如下所示的自定义布局?,android,android-studio,Android,Android Studio,我正在从事一个Android Studio项目,在那里我必须使用一个类似下图的recyclerview,是否有我可以制作的东西,是否有人可以将我链接到某种教程 您可以在这里查看我的答案。使用Recyclerview和GridLayoutManager。在RecyclerAdapter中定义两种类型。您可以在此检查我的答案。使用Recyclerview和GridLayoutManager。在您的回收器适配器中定义2种类型创建2个视图支架,并按如下方式返回您的视图类型 @Override publi

我正在从事一个Android Studio项目,在那里我必须使用一个类似下图的recyclerview,是否有我可以制作的东西,是否有人可以将我链接到某种教程


您可以在这里查看我的答案。使用
Recyclerview
GridLayoutManager
。在
RecyclerAdapter
中定义两种类型。您可以在此检查我的答案。使用
Recyclerview
GridLayoutManager
。在您的
回收器适配器中定义2种类型

创建2个视图支架,并按如下方式返回您的视图类型

@Override
public int getItemViewType(int position) {
    if (isPositionHeader(position)) {
        return TYPE_HEADER;
    }
    return TYPE_ITEM;
}
 @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (viewType == TYPE_HEADER) {
        View headerView = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_recycler_view_header, parent, false);
        return new ViewHolderHeader(headerView);
    } else if (viewType == TYPE_ITEM) {
        View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_recycler_view_item, parent, false);
        ViewHolderItem viewHolder = new ViewHolderItem(itemView);
        return viewHolder;
    }
    throw new RuntimeException("there is no type that matches the type " + viewType + " + make sure your using types correctly");
}
然后在onCreateViewHolder中获取该视图类型,并像这样使用它

@Override
public int getItemViewType(int position) {
    if (isPositionHeader(position)) {
        return TYPE_HEADER;
    }
    return TYPE_ITEM;
}
 @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (viewType == TYPE_HEADER) {
        View headerView = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_recycler_view_header, parent, false);
        return new ViewHolderHeader(headerView);
    } else if (viewType == TYPE_ITEM) {
        View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_recycler_view_item, parent, false);
        ViewHolderItem viewHolder = new ViewHolderItem(itemView);
        return viewHolder;
    }
    throw new RuntimeException("there is no type that matches the type " + viewType + " + make sure your using types correctly");
}

创建2个视图持有者,并按如下方式返回视图类型

@Override
public int getItemViewType(int position) {
    if (isPositionHeader(position)) {
        return TYPE_HEADER;
    }
    return TYPE_ITEM;
}
 @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (viewType == TYPE_HEADER) {
        View headerView = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_recycler_view_header, parent, false);
        return new ViewHolderHeader(headerView);
    } else if (viewType == TYPE_ITEM) {
        View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_recycler_view_item, parent, false);
        ViewHolderItem viewHolder = new ViewHolderItem(itemView);
        return viewHolder;
    }
    throw new RuntimeException("there is no type that matches the type " + viewType + " + make sure your using types correctly");
}
然后在onCreateViewHolder中获取该视图类型,并像这样使用它

@Override
public int getItemViewType(int position) {
    if (isPositionHeader(position)) {
        return TYPE_HEADER;
    }
    return TYPE_ITEM;
}
 @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (viewType == TYPE_HEADER) {
        View headerView = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_recycler_view_header, parent, false);
        return new ViewHolderHeader(headerView);
    } else if (viewType == TYPE_ITEM) {
        View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_recycler_view_item, parent, false);
        ViewHolderItem viewHolder = new ViewHolderItem(itemView);
        return viewHolder;
    }
    throw new RuntimeException("there is no type that matches the type " + viewType + " + make sure your using types correctly");
}