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