Step 1. Add the JitPack repository to your build file
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
// 添加recyclerview依赖,否则会报错
implementation "androidx.recyclerview:recyclerview:1.2.1"
implementation 'com.github.FPhoenixCorneaE:FlowLayout:1.0.8'
}
- 支持单选、多选、删除
- 是否激活、是否可点击
- 设置随机颜色、圆角、描边、背景、水波纹颜色、字体
- ......
<com.fphoenixcorneae.flowlayout.FlowLayout android:id="@+id/mFlNone" android:layout_width="match_parent"
android:layout_height="wrap_content" android:background="@android:color/holo_blue_light"
app:flowLayoutCornerRadius="20dp" app:flowLayoutHorizontalSpacing="8dp" app:flowLayoutItemPaddingBottom="4dp"
app:flowLayoutItemPaddingEnd="8dp" app:flowLayoutItemPaddingStart="8dp" app:flowLayoutItemPaddingTop="4dp"
app:flowLayoutMaxSelectedCount="4" app:flowLayoutMode="none" app:flowLayoutNormalBgColor="@android:color/white"
app:flowLayoutNormalStrokeColor="@android:color/holo_green_light" app:flowLayoutPaddingBottom="4dp"
app:flowLayoutPaddingEnd="8dp" app:flowLayoutPaddingStart="8dp" app:flowLayoutPaddingTop="4dp"
app:flowLayoutRandomTextColor="true" app:flowLayoutSelectedBgColor="@android:color/holo_purple"
app:flowLayoutSelectedStrokeColor="@android:color/holo_orange_dark"
app:flowLayoutSelectedTextColor="@android:color/holo_blue_dark" app:flowLayoutStrokeWidth="2dp"
app:flowLayoutTextColor="@android:color/holo_green_light" app:flowLayoutTextFontFamily="@font/arial"
app:flowLayoutTextSize="20sp" app:flowLayoutVerticalSpacing="4dp"
app:layout_constraintBottom_toTopOf="@+id/mFlSingle" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
val datas1 = arrayListOf(
FlowItem(name = "我怀疑", enabled = false),
FlowItem(name = "你是", enabled = false),
FlowItem(name = "老司机!", clickable = false),
FlowItem(name = "我不是", clickable = false),
FlowItem(name = "我没有", showDelete = true),
FlowItem(name = "别瞎说啊", showDelete = true),
FlowItem(name = "认怂三连", showDelete = true),
FlowItem(name = "我错了", showDelete = true),
FlowItem(name = "别打我啊", showDelete = true),
FlowItem(name = "求求你了", showDelete = true),
FlowItem(name = "装了逼还想跑?", showDelete = true),
FlowItem(name = "来啊", showDelete = true),
FlowItem(name = "互相伤害啊", showDelete = true),
)
mFlNone.apply {
mDatas = datas1
mOnItemClickListener = object :
FlowLayout.OnItemClickListener {
override fun onItemClick(
item: FlowItem,
position: Int,
selectedData: List<FlowItem>,
) {
Toast.makeText(
this@MainActivity,
"itemName:${item.name} position:${position}",
Toast.LENGTH_SHORT
).show()
Log.i(
"OnItemClickListener",
"itemName:${item.name} position:${position} isSelected:${item.selected} selectedData:$selectedData"
)
}
override fun onDelete(
item: FlowItem,
position: Int,
selectedData: List<FlowItem>,
) {
Toast.makeText(
this@MainActivity,
"itemName:${item.name} position:${position}",
Toast.LENGTH_SHORT
).show()
Log.i(
"OnItemClickListener",
"itemName:${item.name} position:${position} selectedData:$selectedData"
)
}
}
}