Jetpack 组合导航架构没有片段?

u2g*_*les 9 navigation android-fragments android-jetpack-compose

我对https://developer.android.com/jetpack/compose/navigation 中记录的新 Jetpack 撰写导航组件 androidx.navigation:navigation-compose 感到有些困惑。

在使用 Jetpack Compose 时,我说具有 0 片段的单活动架构优于具有多个片段的单活动架构是否正确?

我知道我们仍然可以以这种方式使用片段和 Jetpack 组合:

class MyFragment: Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        return ComposeView(requireContext()).apply{
            setContent {
                MyFragmentComposable()
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我想确保在使用 androidx.navigation:navigation-compose 时,我们不应该再使用片段,像这样开始:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            MyApp()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Noa*_*oah 5

是的,你是对的。不使用片段是首选。您可以使用 aNavHost来声明您的导航图。

  • @rocknow android 文档建议使用 compose 导航库 (developer.android.com/jetpack/compose/navigation)。在仅撰写的应用程序中使用片段很笨重,并且会增加多余的样板文件。 (2认同)