Android 自定义多个文本视图

Android custom multiple textviews

我想制作类似下图的内容,多个 TextView 如果视图不适合最后一行,则视图转到下一行。

有人建议如何实现这样的目标吗?

afaik Android SDK 中没有针对此类行为的解决方案,但您可以自己编写(测量文本,如果不合适,请放在下一行 View 中)。这不是一件容易的事,所以我建议 FlexBox lib

您显示的图像是带有芯片的芯片组,而不是文本视图。如果您想实现您在那里看到的内容,只需创建一个芯片组并根据需要添加任意数量的芯片,它们将自动设置在屏幕上。

您可以使用 FlowLayout。检查这个:- https://github.com/nex3z/FlowLayout

还支持RTL布局

//自定义布局的 Flex 布局

implementation 'com.google.android:flexbox:2.0.0'

将此库用于此布局设计。

您可以使用 XML 代码以及编程方式创建筹码。

var chip: Chip = Chip(this)
        chip.setText(name)
        chip.setTextColor(ContextCompat.getColor(this, R.color.colorPrimaryDark))

        val typeface =
            ResourcesCompat.getFont(
                this,
                R.font.lato_semibold
            )
        chip.setTypeface(typeface)
        chip.chipBackgroundColor = ColorStateList.valueOf(
            ContextCompat.getColor(
                this,
                R.color.color_skyblue
            )
        )

        chip.setPadding(Global.dpToPx(this, 15f), 0, Global.dpToPx(this, 15f), 0)

        chip.chipCornerRadius = 40f

        var param: LinearLayout.LayoutParams? =
            LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT
            )
        chip.layoutParams = param

        flexLayoutSkills.addView(chip)