【问题标题】:Jetpack Compose: Best way to display a start screen only the first time you start the appJetpack Compose:仅在您第一次启动应用程序时显示开始屏幕的最佳方式
【发布时间】:2022-11-17 22:46:01
【问题描述】:

我目前正在开发一个具有开始屏幕的应用程序,我想在其中输入唯一代码以通过 firebase 添加设备。添加第一台设备后,启动应用程序后应出现菜单屏幕。

我目前使用两个 Activity 和一个 Shared Preference 来检查我是否有至少一个设备并将我从 StartActivity 重定向到 MenuActivity。

虽然这很好用,但我认为这不是一个好的解决方案。有没有其他方法可以让开始屏幕只出现在您使用 Jetpack Compose 输入第一个唯一代码之前?

【问题讨论】:

    标签: kotlin android-activity android-jetpack-compose android-jetpack


    【解决方案1】:

    我知道这个问题很老,但我想帮助其他人在寻找答案的同时找到这个问题。

    基本的想法是在数据存储中保存一个布尔值偏好,显示应用程序是否已经打开。默认值为 false,每次启动应用程序时,都会检查此首选项。如果它的值为 false,则显示屏幕然后将其设置为 true。当您随后重新启动该应用程序时,首选项的值为“true”并且您不会显示屏幕。您可以通过在 Navhost 的构造函数中使用 if 语句来存档它,该语句控制“startDestination”值。是这样的:

        NavHost(
        navController = navController,
        startDestination =
        if(uiState.isFirstLaunch) {
            //set your first launch screen
        } else {
            //default screen
        }
        ){ ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多