小编Tim*_*lin的帖子

Jetpack 撰写。导航非法状态异常

当我在目的地之间快速切换(即底部导航:主屏幕 -> 设置屏幕 -> 主屏幕)时出现此异常。导航是根据文档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 kotlin android-navigation android-jetpack-compose

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

Jetpack 撰写。强制切换夜间/非夜间资源

最初,我的应用程序的主题遵循系统的主题,为了方便起见,我为浅色和深色主题创建了可绘制资源。然后我实现了手动更改主题的功能,无论系统主题如何,但显然可绘制资源与系统主题或其他主题相关联。有没有办法以某种方式在夜间和非夜间可绘制资源之间强制切换?

android android-theme android-resources android-jetpack-compose

5
推荐指数
2
解决办法
1641
查看次数

科特林。接口作为参数

我将静态数据存储在枚举中。它们可以有很多,但它们具有相同的结构,由特殊的接口指定,以简化所有它们的工作。我在 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)

enums android interface kotlin

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