【问题标题】:Android Jetpack Compose and NavigationAndroid Jetpack 撰写和导航
【发布时间】:2021-10-28 21:07:24
【问题描述】:

假设我们有以下代码:

NavHost(
        navController = navController,
        startDestination = FRAGMENT_ONE
    ) {
        composable(FRAGMENT_ONE) {
            FragmentOneScreen()
        }
        composable(FRAGMENT_TWO) {
            FragmentTwoScreen()
        }
        composable(FRAGMENT_THREE) {
            FragmentThreeScreen()
        }
    }

FragmentOneScreen、FragmentTwoScreen 和 FragmentThreeScreen 是用@composable 注解的方法,NavHost 代码放在 MainActivity 的 onCreate 方法中。

我的问题是:

  • 是 FragmentOneScreen、两个和三个片段
  • 如果上一个问题的答案是YES,那么这是实现片段之间导航的正确方法吗(无需创建三个扩展androidx.fragment 类等的类并在它们的onCreateView 方法中返回ComposeView)

我需要一些帮助,因为我很难理解这些问题。

【问题讨论】:

  • 不,这些是可组合视图。 Compose 中没有 Fragments,除非您自己创建它们。
  • 正如其他人所提到的,它们是可组合的。我刚刚为另一个问题添加了一个非常简单的应用程序,但由于简单,它可能很有意义:-) 项目:github.com/msuhl/ComposeNavigation

标签: android android-jetpack-compose android-jetpack-navigation


【解决方案1】:

它们是可组合的。

NavHost(navController = navController, startDestination = SCREEN_ONE) {
    composable(SCREEN_ONE) {
        ScreenOne()
    }
    composable(SCREENT_TWO) {
        ScreenTwo()
    }
    composable(SCREEN_THREE) {
        ScreenThree()
    }
}

fragment 重命名为 screen 或其他一些术语以避免混淆。

导航可以这样完成,

navController.navigate("friends")

Refer Docs for more detailed explaination

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    相关资源
    最近更新 更多