我的应用程序具有以下结构,并且由于路线 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
我正在开发 Jetpack Compose Navigation 演示,并且有一个嵌套导航图,其中包含两个不同的嵌套路线以及每个嵌套路线的屏幕:
登录图具有三种路线,用于显示三个不同的屏幕
主图有两个用于这些屏幕的路线
嵌套图创建在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
我在从.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,以便它可以在所有设备上运行?
navigation ×2
android ×1
bottombar ×1
ios ×1
ios9 ×1
kotlin ×1
objective-c ×1
sprite-kit ×1
xcode ×1