Dan*_*lio 28 android android-support-library staggeredgridlayout android-recyclerview
我有一个有两列的交错网格.这很有效.我想要的是位置0,行跨越2列.我之前很容易使用GridLayoutManger这样做:
mGridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
return position == 0 ? 2 : 1;
}
});
Run Code Online (Sandbox Code Playgroud)
StaggeredGridLayoutManager没有像GridLayoutManager那样为我提供这个功能.
有没有不同的方式这样做?我已经搜索但没有找到任何有相同问题的人,这是令人惊讶的,因为我认为这个功能对于我的场景和无限滚动非常有用,当ProgressBar显示在RecyclerView的最后一行时.
Gab*_*tti 80
您可以使用setFullSpan方法.
通过这种方式,项目将使用所有跨度区域进行布局.
这意味着,如果方向是垂直的,视图将具有全宽; 如果方向是水平的,则视图将具有完整高度.
像这样的东西:
public final void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) viewHolder.itemView.getLayoutParams();
layoutParams.setFullSpan(true);
}
Run Code Online (Sandbox Code Playgroud)
请注意.
它支持跨越所有列的视图,但它应该足够您的情况.
对于任何使用 Kotlin 的人。
在onBindViewHolder中使用isFullSpan 有效。
override fun onBindViewHolder(holder: LoadStateViewHolder, loadState: LoadState) {
holder.bind(loadState)
val layoutParams = holder.itemView.layoutParams as StaggeredGridLayoutManager.LayoutParams
layoutParams.isFullSpan = true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16260 次 |
| 最近记录: |