当我在目的地之间快速切换(即底部导航:主屏幕 -> 设置屏幕 -> 主屏幕)时出现此异常。导航是根据文档和sampleApp中的示例实现的。也许这是 Jetpack Compose 的错误,因为我在互联网上没有找到类似的错误。
屏幕:
sealed class Screen(
val route: String,
@StringRes val title: Int,
@DrawableRes val icon: Int) {
object Home : Screen("HomeScreen", R.string.app_name, R.drawable.ic_baseline_chevron_right_24)
object Scanner : Screen("ScannerScreen", R.string.app_name, R.drawable.ic_baseline_chevron_right_24)
object Settings : Screen("SettingsScreen", R.string.app_name, R.drawable.ic_baseline_chevron_right_24)
}
Run Code Online (Sandbox Code Playgroud)
底部导航:
@Composable
fun BottomNavigationBar(navController: NavController) {
val items = listOf(
Screen.Home,
Screen.Scanner,
Screen.Settings
)
BottomNavigation {
val navBackStackEntry = navController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry.value?.destination?.route
items.forEach { item ->
BottomNavigationItem(
icon = { Icon(painter …
Run Code Online (Sandbox Code Playgroud) 最初,我的应用程序的主题遵循系统的主题,为了方便起见,我为浅色和深色主题创建了可绘制资源。然后我实现了手动更改主题的功能,无论系统主题如何,但显然可绘制资源与系统主题或其他主题相关联。有没有办法以某种方式在夜间和非夜间可绘制资源之间强制切换?
android android-theme android-resources android-jetpack-compose
我将静态数据存储在枚举中。它们可以有很多,但它们具有相同的结构,由特殊的接口指定,以简化所有它们的工作。我在 Swift 中使用了类似的逻辑并且它有效,但 Kotlin 不允许我使用这样的逻辑。
interface DataElement {
val code: UInt
val name: String
}
enum class DataEnum1: DataElement {
Apple {
override val code: UInt
get() = 1u
},
Orange {
override val code: UInt
get() = 2u
},
Watermelon {
override val code: UInt
get() = 3u
}
}
enum class DataEnum2: DataElement {
Blueberry {
override val code: UInt
get() = 4u
},
Strawberry {
override val code: UInt
get() = 5u
},
Blackberry {
override val …
Run Code Online (Sandbox Code Playgroud)