Drs*_*avi 7 android bottom-sheet android-jetpack-compose android-dark-theme
我正在使用 jetpack compose 1.0.0,BottomSheetScaffold 工作正常,但是在我添加了一个功能来使用按钮将主题从浅色更改为深色后,在更改主题后,底部工作表将不会展开。我正在使用 Application 类的属性来处理主题状态。这是一些代码:
使用底部工作表的屏幕,顺便说一句,这是在片段上
MyAppTheme(application.isDark.value) {
val bottomSheetScaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = BottomSheetState(BottomSheetValue.Collapsed)
)
val coroutineScope = rememberCoroutineScope()
BottomSheetScaffold(
scaffoldState = bottomSheetScaffoldState,
sheetContent = {
HomeBottomSheet(
onCancelClick = {
coroutineScope.launch {
bottomSheetScaffoldState.bottomSheetState.collapse()
}
},
onDoneClick = { text ->
Toast.makeText(requireContext(), text, Toast.LENGTH_LONG)
.show()
}
)
},
sheetPeekHeight = 0.dp
) {
HomeScreen(
darkTheme = application.isDark.value,
darkThemeToggleClick = application::toggleDarkTheme,
onHistoryClick = {
findNavController().navigate(R.id.goToHistory)
},
onAddClick = {
coroutineScope.launch {
bottomSheetScaffoldState.bottomSheetState.expand()
}
}
)
}
}
Run Code Online (Sandbox Code Playgroud)
应用:
class MyApp: Application() {
val isDark = mutableStateOf(false)
fun toggleDarkTheme() {
isDark.value = !isDark.value
}
}
Run Code Online (Sandbox Code Playgroud)
小智 12
看起来像是初始化的问题bottomSheetScaffoldState
应该
val scaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = rememberBottomSheetState(BottomSheetValue.Collapsed)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2713 次 |
| 最近记录: |