项目做流式布局的搜索记录,要求UI上最多显示两行,同行ios通过设置UI高度与限制滑动来解决,我觉得还是找找方法吧,下面这个是网上找的办法,出处找不到了
FlexboxLayoutManager默认有一个setMaxLine()方法,此方法是设置最大显示行数,多出的部分会挤在最后一行显示,这个设计有点抽风,在网上看了一个解决方法,通过自定义FlexboxLayoutManager,修改最大显示行数
public class FlexboxLayoutManagerCustom extends FlexboxLayoutManager {
private int maxLines;
public FlexboxLayoutManagerCustom(Context context, int maxLines) {
super(context);
this.maxLines = maxLines ;
}
@Override
public int getMaxLine() {
return super.getMaxLine();
}
/**
* 这里限制了最大行数,多出部分被以 subList 方式截掉
*/
@Override
public List<FlexLine> getFlexLinesInternal() {
List<FlexLine> flexLines = super.getFlexLinesInternal();
int size = flexLines.size();
if (maxLines > 0 && size > maxLines) {
flexLines.subList(maxLines, size).clear();
}
return flexLines;
}
}
网友评论