美文网首页
FlexboxLayout设置maxLine后Item被压缩或裁

FlexboxLayout设置maxLine后Item被压缩或裁

作者: 寻水的鱼Chock | 来源:发表于2023-07-11 11:37 被阅读0次
前言

FlexboxLayout是Google开源的一个强大的控件,可实现灵活的可伸缩页面布局,是常规LinearLayout、ConstraintLayout等布局无法取代的对象。

当有这么一个需求时:布局存在最大行数,子View数量不定,不能压缩不能拉伸。
布局提供了一个属性maxLine,可以实现限制最大的行数,但是多余子View在空间不足时,只能压缩或者超出屏幕边界被裁剪。效果如下:

设置最大2行被裁剪.png
解决方案
  1. 去掉maxLine的限制
  2. addView完后主动调用measure计算所需行数
  3. 删除多余子View
val cv = binding.mFlexboxLayout
//此处调用addView() 添加任意多的子View
cv.measure(
    MeasureSpec.makeMeasureSpec(getScreenWidth(), MeasureSpec.EXACTLY),
    MeasureSpec.makeMeasureSpec(0, MeasureSpec.AT_MOST)
)
val ls = cv.flexLines
if (ls.size > 2) {//最大行数
    var x = 0
    for (i in 2 until ls.size) {
        x += ls[i].itemCount
    }
    //此处调用removeViewAt() 删除x个子View
} else {
    //没有超过行数限制
}



如果本文对你有帮助就点个赞支持下吧~~~

相关文章

  • XZ压缩解压

    XZ压缩xz压缩文件方法或命令xz -z 要压缩的文件如果要保留被压缩的文件加上参数 -k ,如果要设置压缩率加入...

  • Qml拖放

    需要在被拖放Item里设置拖放属性: 设置被拖放Item的鼠标区域: 接收端Item就比较好设置了, 增加Drop...

  • antd proform item 自定义组件

    被设置了 name 属性的 Form.Item 包装的控件,表单控件会自动添加 value(或 valueProp...

  • Flutter中的RichText控件,没有换行

    问题:Flutter 中RichText 无法换行? 首先想到的是:softWare设置为true,maxLine...

  • Android focus search returned a

    Android在 ListView或RecyclerView 的item中EditText 设置imeOption...

  • Fits~ Overview –Options-2

    • Allow Compaction(允许压缩):使用此设置后,如有必要,AIDAPro将在辨识时压缩FIR系数。...

  • TextView多行文本Ellipsize的终极解决方案

    Android的TextView提供了ellipse的功能,就是在文本超过指定行数maxLine后增加...,然而...

  • layer_list

    将多个图片或 shape 按照顺序层叠起来。 每个 item 标签里设置android:topandroid:bo...

  • Bitmap知识点

    采样率压缩 根据ImageView的大小,通过设置inSampleSize采样率,加载压缩后的图片。如下: inS...

  • 至尊宝纺2018-01-14

    裁片设置~调入裁片~(设置层数)~布料设置~(幅宽150)~布料确认~智能排料 新建~矩形(@~ “32” ~ “...

网友评论

      本文标题:FlexboxLayout设置maxLine后Item被压缩或裁

      本文链接:https://www.haomeiwen.com/subject/ksgyudtx.html