小编Eyn*_*err的帖子

Jetpack Compose:如何修改 ModalNavigationDrawer 中 Drawer 的宽度?

最近,我一直在尝试将 Material3 与 Jetpack Compose 结合使用,并且我的一个屏幕中需要一个抽屉和一个支架。遗憾的是ScaffoldMaterial3中还没有支持抽屉,但幸运的是ModalNavigationDrawer可以找到替代品。但是,使用 ModalNavigationDrawer 时,抽屉打开时抽屉的内容始终覆盖整个屏幕,并且我找不到任何参数将其宽度设置为正确的值,例如屏幕宽度的一半。我有什么办法可以解决这个问题吗?我的 compose 版本是1.2.0-beta02,material3 版本是1.0.0-alpha12

android android-jetpack-compose android-jetpack-compose-material3

7
推荐指数
2
解决办法
4491
查看次数

Jetpack Compose:LazyColumn 不更新项目

我有一个lazyColumn从viewModel接收列表来创建项目:

@Composable
fun HomeList(
    modifier: Modifier = Modifier,
    dataList: List<Data>,
    listState: LazyListState = rememberLazyListState(),
    onClickItem: (Data) -> Unit,
    onLongPressItem: (Data) -> Unit
) {
    LazyColumn(
        modifier = modifier,
        state = listState
    ) {
        items(dataList) { data ->
            Log.d(TAG, "HomeList: add data $data")
            HomeListItem(
                data = data,
                onClick = onClickItem,
                onLongPressed = onLongPressItem
            )
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该列表包装在 viewModel 中的 stateFlow 中,并在 Composable 中收集为状态:

    // viewModel
    ...
    private val _uiState = MutableStateFlow(
        HomeUiState(
            ...
            homeList = listOf()
        )
    )
    val uiState …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose

1
推荐指数
1
解决办法
3862
查看次数