Easier to complete Jetpack Compose navigation
In your build.gradle:
dependencies {
implementation 'com.patchself:compose-navigator:0.1.3'
}Or if you use gradle.kts, in yourbuild.gradle.kts
dependencies {
implementation("com.patchself:compose-navigator:0.1.3")
}- Add config your compose activity
classMainActivity : AppCompatActivity() {
overridefunonCreate(savedInstanceState:Bundle?) {
super.onCreate(savedInstanceState)
//set open app first page
navigationController.initController(SplashPage())
setContent {
navigationController.viewContent()
}
}
overridefunonBackPressed() {
// navigator go back handlerif (!navigationController.onBackPressed()){
super.onBackPressed()
}
}
}
- Write your custom page
classCustomPage : PageController() {
overridefungetId() =R.id.CustomPage/** * write page content in this method*/
@Composable
overridefunscreenContent() {
Scaffold(topBar = {
TopAppBar(
title = { Text(text ="Navigator Sample") },
navigationIcon = {
IconButton(onClick = { navigateBack() }) {
Icon(asset =Icons.Filled.ArrowBack)
}
},
elevation =4.dp
)
}) {
}
}
}- In your Custom Page,which extend
PageController, you can usenavigateTo(PageController)to new page, andnavigateBack()go back to last page - You can use
resetTo(pageId)back to specify page, and change page args likeresetTo<HomePage>(R.id.HomePage){ argsOfHomePage = newValue }
