官方FlowLayout的使用,以及使用TagFlowLayout的一个问题

博客主要讲述使用鸿洋的TagFlowLayout显示标签自动换行时,内容过长右边会缺一块、圆角背景被切掉的问题。作者用官方的FlowLayout替代解决该问题,同时指出官方的FlowLayout添加view时不能加左右margin,还介绍了使用的属性及代码添加view的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

一直使用的是鸿洋的TagFlowLayout,用于显示标签的自动换行问题。
但最近遇到一个问题:
如果内容过长则右边的内容会缺一块,如果是一个圆角背景则会被切掉一点。为此我花费了大量时间,用官方的FlowLayout替代解决这个问题。

需要注意的是,官方的也不能在添加的view上加左右的margin,否则也会出现上述问题,而TagFlowLayout也是代码里添加了增加margin造成的。

FlowLayout的使用

        <android.support.design.internal.FlowLayout
            android:id="@+id/tfl_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="17dp"
            android:layout_marginTop="10dp"
            android:layout_marginEnd="10dp"
            app:itemSpacing="8dp"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/tv_title"
            app:lineSpacing="8dp" />

不能在添加的view上加左右的margin,我们可以使用属性:

  • app:itemSpacing 每个tag之间的间隔
  • app:lineSpacing 行距

代码添加view:

    private void showTagView(android.support.design.internal.FlowLayout flowLayout, final List<ArticlesBean> beanList) {
        flowLayout.removeAllViews();
        for (int i = 0; i < beanList.size(); i++) {
            TextView textView = (TextView) View.inflate(flowLayout.getContext(), R.layout.layout_navi_tag, null);
            textView.setText(Html.fromHtml(beanList.get(i).getTitle()));
            flowLayout.addView(textView);
        }
    }

注意:

  • 完整路径名:android.support.design.internal.FlowLayout
  • app:itemSpacing 未知原因不能直接关联属性
  • 不能在view里直接设置 margin ,会出现圆角背景会被切掉的问题。
  • 如果使用 ConstraintLayout,则FlowLayout使用:layout_width="match_parent"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值