【发布时间】:2020-06-28 13:05:56
【问题描述】:
我正在创建一个网格,如下图所示。
输入列表:{“位置 0”、“位置 1”、“位置 2”、“位置 3”、“位置 4”、.....}
问题是,我想要一个包含两种组件的菜单。
small -->图片中的位置0
巨大的 --> 图片中的位置 2
所以,当我的适配器从 位置 4 创建项目时,它是无序的。
预期输出:
位置 1、位置 2、位置 3
位置 4、位置 5、位置 6
public class SampleRecyclerViewAdapter extends RecyclerView.Adapter<SampleViewHolders> {
private List<ItemObject> itemList;
private Context context;
public SampleRecyclerViewAdapter(Context context,
List<ItemObject> itemList) {
this.itemList = itemList;
this.context = context;
}
@Override
public SampleViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(
R.layout.book_list_item, null);
SampleViewHolders rcv = new SampleViewHolders(layoutView);
return rcv;
}
@Override
public void onBindViewHolder(SampleViewHolders holder, int position) {
holder.bookName.setText(itemList.get(position).getName() + position);
if (position % 2 == 0) {
holder.itemView.setMinimumHeight(250);
} else {
holder.itemView.setMinimumHeight(300);
}
}
@Override
public int getItemCount() {
return this.itemList.size();
}
}
【问题讨论】:
-
这样设置
spanCountGridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); -
嗨,问题是元素的高度不一样。
-
什么剂量 setMinimumHeight 方法剂量?
-
@JustASimpleLineOfCode 他遇到的问题是由于适配器调整了可用跨度区域之间的下一行,因此从逻辑角度更改了项目的顺序
-
对了,你能找到解决问题的办法吗?我不知道构建此布局的最佳方法是什么。
标签: android performance android-studio android-layout