安卓使用hongyangAndroid/FlowLayout框架,怎么实现动态预设选中。请用kotlin写出几个简单的案例
时间: 2023-06-12 09:06:40 浏览: 155
假设我们的 FlowLayout 中的每个子 View 都是一个 TextView,我们可以通过设置 TextView 的背景色或者边框来表示选中状态。下面是两个简单的示例:
1. 点击 TextView 切换选中状态
```kotlin
val flowLayout = findViewById<FlowLayout>(R.id.flowLayout)
for (i in 0 until flowLayout.childCount) {
val textView = flowLayout.getChildAt(i) as TextView
textView.setOnClickListener {
textView.isSelected = !textView.isSelected
if (textView.isSelected) {
textView.setBackgroundResource(R.drawable.selected_background)
} else {
textView.background = null
}
}
}
```
在这个示例中,我们通过 `isSelected` 属性来记录 TextView 的选中状态,并根据状态来设置背景色。点击 TextView 时,我们只需要切换选中状态即可。
2. 动态设置预设选中项
```kotlin
val flowLayout = findViewById<FlowLayout>(R.id.flowLayout)
val selectedIndices = listOf(1, 3, 5) // 预设选中项的索引
for (i in 0 until flowLayout.childCount) {
val textView = flowLayout.getChildAt(i) as TextView
if (selectedIndices.contains(i)) {
textView.isSelected = true
textView.setBackgroundResource(R.drawable.selected_background)
}
textView.setOnClickListener {
textView.isSelected = !textView.isSelected
if (textView.isSelected) {
textView.setBackgroundResource(R.drawable.selected_background)
} else {
textView.background = null
}
}
}
```
在这个示例中,我们通过一个列表来记录预设选中项的索引。在遍历 FlowLayout 中的子 View 时,如果当前索引在预设选中项列表中,我们就将对应的 TextView 设置为选中状态。当用户点击其他 TextView 时,我们仍然可以通过上面示例中的方式来切换选中状态,并根据状态来设置背景色。
阅读全文