如何在 LazyColumn 中选择多个项目并最终将所选项目添加到单独的列表中。
GettingTags(tagsContent ={ productTags ->
val flattenList = productTags.flatMap {
it.tags_list
}
Log.i(TAG,"Getting the flattenList $flattenList")
LazyColumn{
items(flattenList){
ListItem(text = {Text(it) })
if(selectedTagItem) {
Icon(
imageVector = Icons.Default.Check,
contentDescription = "Selected",
tint = Color.Green,
modifier = Modifier.size(20.dp)
)
}
}
}
})
Run Code Online (Sandbox Code Playgroud)
可变变量状态
var selectedTagItem by remember{
mutableStateOf(false)
}
Run Code Online (Sandbox Code Playgroud) android android-jetpack-compose android-jetpack-compose-lazy-column
我想要实现与在 stackOverFlow 问题中添加标签相同的效果,我们为如何在 jetpack compose 中执行此操作的问题选择标签,如下所示,单击“x”图标应删除标签

我以这种方式开始,但很困惑从哪里开始以及如何实现添加带有 icon 的按钮的想法。任何人都可以指导我如何实现它
我尝试过,但预览后我很困惑我应该使用带有图标的按钮还是基本的文本字段......
@Composable
fun MultipleTextFieldWithDeleteIcon(
text: String,
hint: String,
modifier: Modifier = Modifier,
isHintVisible: Boolean = true,
onValueChange: (String) -> Unit,
textStyle: TextStyle = TextStyle()
) {
Box(
modifier = modifier
) {
BasicTextField(
value = text,
onValueChange = onValueChange,
textStyle = textStyle,
modifier = Modifier
.align(Alignment.Center)
.height(100.dp)
.width(300.dp)
)
if(isHintVisible) {
Text(text = hint, style = textStyle, color = Color.DarkGray)
}
}
}
@Preview
@Composable
fun AboveTextFieldWithIconPreview() {
MultipleTextFieldWithDeleteIcon(text = "android, …Run Code Online (Sandbox Code Playgroud) android kotlin android-jetpack-compose android-compose-textfield
我想从列表中删除一个对象,以便我可以添加所需的字符串并传递它。我有一个像这样的模型类
data class TagItem(
val tagTittle: String,
val isSelected: Boolean
)
Run Code Online (Sandbox Code Playgroud)
该数据类映射为惰性列,用于使列表选择和取消选择项目
var tagsItems by remember {
mutableStateOf(
(tagsList).map {
TagItem(
tagTittle = it,
isSelected = false
)
}
)
}
val productEveryTags = tagsItems.filter {
it.isSelected
}
Log.i(TAG,"Only this $productEveryTags ")
viewModel.onEvent(ProductUploadEvent.EnteredProductTags(productEveryTags))
Run Code Online (Sandbox Code Playgroud)
我正在单独过滤所选项目,但在我的日志语句中
Only this [TagItem(tagTittle=Tagged , isSelected=true), TagItem(tagTittle=Ducati , isSelected=true)]
Run Code Online (Sandbox Code Playgroud)
我如何删除“isSelected”对象并将“tagTittle”单独放入单个列表中