Android Jetpack Compose Navigation 疑问:Composable页面是否为Fragment?
你提供的示例代码如下:
NavHost( navController = navController, startDestination = FRAGMENT_ONE ) { composable(FRAGMENT_ONE) { FragmentOneScreen() } composable(FRAGMENT_TWO) { FragmentTwoScreen() } composable(FRAGMENT_THREE) { FragmentThreeScreen() } }
问题1答复:三个Composable方法对应的页面不属于Fragment
你使用的是Compose专属的navigation-compose导航组件,composable()方法声明的是纯Compose目的地,和androidx.fragment.app.Fragment没有任何关联,底层也不会自动创建Fragment实例。这三个带@Composable注解的方法只是普通的Compose页面渲染函数,不属于Fragment范畴。
问题2答复:该实现是合规的官方推荐方案
因为这三个页面本身就不是Fragment,所以不存在“Fragment间导航”的说法。你用的纯Compose导航是官方主推的纯Compose项目的标准导航方案,完全合规。
只有当你需要用Fragment承载Compose页面时,才需要创建继承androidx.fragment的类、在onCreateView中返回ComposeView,再配合navigation-fragment组件实现导航。纯Compose项目不需要做这些额外操作。
内容的提问来源于stack exchange,提问作者Milan Cvetkovic
相关产品推荐
相关产品推荐

