原先用的是三方的流式布局,后来发现google自己也有,效果是一样的。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.internal.FlowLayout
android:id="@+id/llOrderTags"
app:lineSpacing="6dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
</com.google.android.material.internal.FlowLayout>
</LinearLayout>
private fun getTextView(rightMargin:Float = 10f):TextView{
var textView = TextView(context)
textView.apply {
setTextSize(TypedValue.COMPLEX_UNIT_SP,11f)
setPadding(Utils.dp2px(context,3f))
setTextColor(ContextCompat.getColor(context,R.color.white))
var params = ViewGroup.MarginLayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params.rightMargin = Utils.dp2px(context,rightMargin)
layoutParams = params
}
return textView;
}
holder.getView<FlowLayout>(R.id.llOrderTags).removeAllViews()
var orderTags:List<String>? = row.orderTags?.filter { it != "分期" && it != "全款"}
if (orderTags.isNullOrEmpty().not()) {
var textView:TextView
orderTags?.forEach {
textView = getTextView()
textView.background = ContextCompat.getDrawable(context,R.drawable.shape_textview_whitecolor_border)
textView.setTextColor(ContextCompat.getColor(context,R.color.font_color_blank))
textView.text = it
holder.getView<FlowLayout>(R.id.llOrderTags).addView(textView)
}
}
其实Design Support Librar里面还有好多好的控件,可以看一下下面帖子,说的也不错,挺全:

博客探讨了如何使用谷歌Design Support Library中的FlowLayout实现流式布局,并提及该库中其他有用控件,推荐查看相关帖子以了解更多。
510

被折叠的 条评论
为什么被折叠?



