roc*_*ght 7 android gridlayoutmanager android-recyclerview
我正在使用recyclerview和GridLayoutManager.我还使用以下代码使第一个项目变大
lLayout.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int i) {
if (i==0) return 2;
else return 1;
}
});
Run Code Online (Sandbox Code Playgroud)
一切正常,除了一个:位置1处的项目(即大图像中的下一个项目)垂直拉长以匹配大项目的高度.从第3行开始,所有图像都如图所示.
我怎么能摆脱这个?
编辑:经过一番分析
所以问题似乎是大图像水平地采用两个跨度但垂直单跨,因为我强迫我的ImageView是方形的,看起来它也采取了两行,实际上它是一行.由于这个原因,第二个图像看起来很长.
所以现在我的问题是,如何使网格项垂直两个跨度和两个水平跨度?
尝试使用StaggeredGridLayoutManager而不是GridLayoutManager。StaggeredGridLayoutManager支持水平和垂直布局以及反向布局子项的能力。 适配器的onBindViewHolder方法,您可以使用此代码根据项目的位置设置跨度
final ViewGroup.LayoutParams lp = holder.itemView.getLayoutParams();
if (position == 0) {
StaggeredGridLayoutManager.LayoutParams sglp = (StaggeredGridLayoutManager.LayoutParams) lp;
sglp.setFullSpan(true);
holder.itemView.setLayoutParams(sglp);
}
Run Code Online (Sandbox Code Playgroud)
找到例子http://enoent.fr/blog/2015/01/18/recyclerview-basics/ ...希望它会帮助你
| 归档时间: |
|
| 查看次数: |
1344 次 |
| 最近记录: |