【发布时间】:2022-11-07 17:20:25
【问题描述】:
我正在尝试从 Lazycolumn 中删除一个项目。这是我的代码:
MyViewModel.kt:
class MyViewModel:ViewModel() {
val items = MutableLiveData<List<Items>>()
fun removeItem(item: Items) {
items.value = items.value?.filter { it != item }?.toList()
}
MainActivity.kt:
class MainActivity : ComponentActivity() {
@ExperimentalFoundationApi
@SuppressLint("UnusedMaterialScaffoldPaddingParameter")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val viewmodel = ViewModelProvider(this).get(MyViewModel::class.java)
setContent {
JetPackAppTheme {
val list = Mylist()
val getData = list.getData()
viewmodel.items.value=getData
LazyColumn(
verticalArrangement = Arrangement.spacedBy(12.dp),
contentPadding = PaddingValues(all=16.dp),
) {
items(items = viewmodel.items.value!!) { item->
CustomItem(item = item,
onItemClick = {
viewmodel.removeItem(it)
}
}
}
}
}
问题是 LazyColumn 没有更新,但 MyViewModel 中的项目 类更新。
【问题讨论】:
标签: android kotlin android-jetpack-compose lazycolumn compose-recomposition