美文网首页
官方FlowLayout的使用,以及使用TagFlowLayou

官方FlowLayout的使用,以及使用TagFlowLayou

作者: Jinbeen | 来源:发表于2019-06-17 23:17 被阅读0次

    问题

    一直使用的是鸿洋的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"

    相关文章

      网友评论

          本文标题:官方FlowLayout的使用,以及使用TagFlowLayou

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