如何制作搜索字段以将结果插入到 LazyColumn 中

时间:2021-05-16 23:13:26

标签: android-jetpack android-jetpack-compose

如何制作搜索字段以将结果插入到 LazyColumn 中 我的代码:

 @Composable
    private fun SearchTopBar(){
        TopAppBar(title={  },
                navigationIcon = {
                    IconButton(onClick = { onBackPressed() }) {
                        Icon(imageVector = Icons.Default.ArrowBack, contentDescription = stringResource(
                                id = R.string.back
                        ),tint= colorResource(id = R.color.black) )
                    }

                    
                },
                contentColor = Color.White,
                backgroundColor = colorResource(id = R.color.pastel_green),
                actions = {
                    TextField()
                }
        )
    }

    @Composable
    private fun Main(){
        Scaffold(topBar={SearchTopBar()},content={})
    }

动态更改来自api的搜索内容

1 个答案:

答案 0 :(得分:0)

我将介绍一个具有两种状态的 ViewModel

  • val query: StateFlow<String>
  • val items: StateFlow<T>

然后使用带有 valueonValueChangedstateHoisting 模式来修改您的查询。

您的 items 应该在 query 中观察您的 viewModel 并更新 items

您可以再次使用 items

Composable 中观察结果 viewModel.items.collectAsState()

有关详细信息,请参阅 this example