GridLayoutManager中如何准备setSpanSizeLookup
How to prepare setSpanSizeLookup in GridLayoutManager
我需要每 18,36,54,...18*Nth... 网格布局与 width:match 父级和 height:60dp 在网格布局管理器中用于分页加载栏目的。
这是我的代码,
GridLayoutManager mng_layout = new GridLayoutManager(this, 4);//WHAT IS 4 ?//
mng_layout.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
int mod = position % 6; //WHAT IS 6 ?//
if (position == 0 || position == 1)
return 2; //WHAT IS 2 ?//
else if (position < 6)
return 1; //WHAT IS 1 ?//
else if (mod == 0 || mod == 1)
return 2; //WHAT IS 2 ?//
else
return 1; //WHAT IS 1 ?//
}
});
如果有人有时间请解释代码中的注释行
跨度大小表示此项从网格中占用多少个单元格
public int getSpanSize(int position) {
int mod = position % 6; //here 18%6=0 ,19%6=1 ,36%6=0 ,37%6=1 and so one
if (position == 0 || position == 1)
return 2; // if this is the first or sesond items make it take span size of 2 so 4/2 =2 cells will be shows
else if (position < 6)
return 1; // here 2,3,4,5 < 6 so every item should take span size 1 out of 4 , so we have 4 cells
else if (mod == 0 || mod == 1)
return 2; // here we check the mode which is defined above 18,19 & 36,37 ,54,55 and so on every pair will span 2 cells for every number
else
return 1; // any thing other like will take one span out of 4 grid columns
}
}
你可以看看这个tutorial
我需要每 18,36,54,...18*Nth... 网格布局与 width:match 父级和 height:60dp 在网格布局管理器中用于分页加载栏目的。
这是我的代码,
GridLayoutManager mng_layout = new GridLayoutManager(this, 4);//WHAT IS 4 ?//
mng_layout.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
int mod = position % 6; //WHAT IS 6 ?//
if (position == 0 || position == 1)
return 2; //WHAT IS 2 ?//
else if (position < 6)
return 1; //WHAT IS 1 ?//
else if (mod == 0 || mod == 1)
return 2; //WHAT IS 2 ?//
else
return 1; //WHAT IS 1 ?//
}
});
如果有人有时间请解释代码中的注释行
跨度大小表示此项从网格中占用多少个单元格
public int getSpanSize(int position) {
int mod = position % 6; //here 18%6=0 ,19%6=1 ,36%6=0 ,37%6=1 and so one
if (position == 0 || position == 1)
return 2; // if this is the first or sesond items make it take span size of 2 so 4/2 =2 cells will be shows
else if (position < 6)
return 1; // here 2,3,4,5 < 6 so every item should take span size 1 out of 4 , so we have 4 cells
else if (mod == 0 || mod == 1)
return 2; // here we check the mode which is defined above 18,19 & 36,37 ,54,55 and so on every pair will span 2 cells for every number
else
return 1; // any thing other like will take one span out of 4 grid columns
}
}
你可以看看这个tutorial