我目前正在研究 Jetpack Compose,试图使用现代 Android 架构组件构建功能丰富的应用程序。传统上,我的应用程序中的每个屏幕(或导航单元)都是一个 Activity 或一个 Fragment,每个屏幕都有自己的生命周期绑定,但使用 Jetpack Compose 和 Compose Navigation 库,我会执行以下操作:
MainActivity.kt:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val navController = rememberNavController()
NavHost(navController = navController, startDestination = "main") {
composable("main") { MainScreen(navController) }
// More composable calls
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
哪里MainScreen只是一个可组合项。我的问题是:
ComponentActivity并定义自己的可组合布局?是否因某种原因而灰心丧气?据我所知,在 jetpack-compose 之前,最好的做法是拥有一个 Activity,然后为您的应用程序使用多个片段。但是现在 jetpack compose 提供了 jetpack compose 功能之间的导航,所以我们现在需要片段吗?或者,如果我们不再需要片段,我们可以只使用具有多个屏幕的单个活动(撰写功能),我如何在仅使用单个活动和撰写功能的同时在数据库中添加/编辑、获取上下文等内容。我仍然是一个初学者/学习者,所以我可能会错过一些东西或做错一些事情。