小编xsh*_*ake的帖子

Jetpack Compose:嵌套导航,在嵌套路径中使用底部栏导航

我的应用程序具有以下结构,并且由于路线 B ​​有自己的底部导航栏,因此有自己的 NavHost,因此我如何从屏幕 C(从选项卡栏打开)导航到路线 A?

 - Nested Route "/onboarding_route", startDestination = 'start' 
     - route 'start' -> Screen 'Login' (Composable)
     - route 'legal' -> Screen 'Legal' (Composable)

- Nested Route "/login_route", startDestination = 'login' 
     - route 'login' -> Screen 'Login' (Composable)
     - route 'register' -> Screen 'Register' (composable)
     - route 'recover' -> Screen 'Recover' (composable)

- Nested Route '/main_app', startDestination 'dashboard' => with bottom navigation
     - route 'dashboard' -> Screen 'Dashboard' (composable)
     - route 'product' -> Screen 'Product' (composable)
     - …
Run Code Online (Sandbox Code Playgroud)

navigation bottombar android-jetpack-compose jetpack-compose-navigation

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

Jetpack Compose Navigation:直接导航到非 startDestination 的嵌套图中的路由

我正在开发 Jetpack Compose Navigation 演示,并且有一个嵌套导航图,其中包含两个不同的嵌套路线以及每个嵌套路线的屏幕:

  • 登录图
  • 主图

登录图具有三种路线,用于显示三个不同的屏幕

  • 路由“login”用于显示登录屏幕
  • 路由“register”用于显示RegisterScreen
  • 路由“recoverPassword”用于显示 RecoverPasswordScreen

主图有两个用于这些屏幕的路线

  • 路由“home”以显示主屏幕
  • 路由“设置”以显示设置屏幕

嵌套图创建在MainActivity.kt中调用

setContent {
        NavigationDemoTheme {

            val navController = rememberNavController()
            SetupNavGraph(navController = navController)
        }
    }
Run Code Online (Sandbox Code Playgroud)

文件NestedNavGraph.kt中的函数如下所示:

fun SetupNavGraph(navController: NavHostController) {
    NavHost(navController = navController, startDestination = "login_route")
    {
        loginGraph(navController = navController)
        mainGraph(navController = navController)
    }
}
Run Code Online (Sandbox Code Playgroud)

在文件LoginNavGraph.kt中,我定义了路线和起始目的地

fun NavGraphBuilder.loginGraph(navController: NavController) {
    navigation(startDestination = "login", route = "login_route") {
        composable(route = "login") {
            LoginScreen(navController = navController)
        }

        composable(route = "register") {
            RegisterScreen(navController = navController) …
Run Code Online (Sandbox Code Playgroud)

navigation android kotlin android-jetpack-navigation android-jetpack-compose

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

iOS 9/Xcode 7:SKSpriteNode spriteNodeWithImageNamed在某些设备上不起作用

我在从.xcassets图像集加载SKSpriteNode的图像时遇到问题.

虽然它在iOS 8.x上使用[SKSpriteNode spriteNodeWithImageNamde:imageName]工作正常但它在iOS 9上的某些设备上不起作用.例如,它适用于iPhone 6/6 Plus和iPad Air但不适用于iPod Touch 5G.

适用于iOS 8.x的所有设备,但不适用于iOS 9.x(Xcode 7,Xcode 7.1 Beta 3)上的所有设备(例如iPod Touch 5g):

SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:@"MenuBackgroundImage"];
background.anchorPoint = CGPointMake(0, 0);
background.zPosition = 100;
[self addChild:background];
Run Code Online (Sandbox Code Playgroud)

有趣的是,如果我像这样加载图像,它可以在iOS 9上运行:

SKTexture *imageTexture = [SKTexture textureWithImage:[UIImage imageNamed:@"MenuBackgroundImage"]];
SKSpriteNode* background = [SKSpriteNode spriteNodeWithTexture:imageTexture];
Run Code Online (Sandbox Code Playgroud)

问题是,如果我用UIImage加载图像,内部缓存将无法正常工作.有没有人知道如何从iOS 9中的.xcassets正确加载ImageSet,以便它可以在所有设备上运行?

xcode objective-c ios sprite-kit ios9

5
推荐指数
0
解决办法
350
查看次数