Android

FlexboxLayoutManager流式布局设置行数

2022-07-26  本文已影响0人  带带我

项目做流式布局的搜索记录,要求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;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读