使用RecyclerView跨多个列
所以我想要的是有一个交错的布局,但列表中的第一项需要跨越两列。 前两行也是固定的高度。 除了第一个项目跨越两列,我有一切工作。
我正在使用StaggeredGridLayoutManager的RecyclerView.Adapter。 看起来好像不是开箱即用的function。 我想我可以做一个自定义布局pipe理器,我只是不知道从哪里开始。 我试过search,但我找不到有关如何获取项目跨越多个列的任何内容。
下面的图片是我在列表中寻找的东西。
目前, StaggeredGridLayoutManager
仅支持跨越所有列的视图(对于垂直configuration的布局),而不是任意数量的视图。
如果你仍然想跨越所有的列,你应该在适配器实现中做到这一点:
public final void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) viewHolder.itemView.getLayoutParams(); layoutParams.setFullSpan(true); }
恕我直言, StaggeredGridLayoutManager
仍在沉重的发展和谷歌希望我们使用它的反馈:(
我所做的跨越垂直configuration布局的所有列是创build新的LayoutParams
并在适配器实现中将full span设置为true:
@Override public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, int position) { StaggeredGridLayoutManager.LayoutParams layoutParams = new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.setFullSpan(true); viewHolder.itemView.setLayoutParams(layoutParams); }