Skip to content

Repository files navigation

Compose Navigator

License

Easier to complete Jetpack Compose navigation

Getting started

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")
}

Usage

  1. 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()
}
}
}
  1. 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
)
}) {
}
}
}
  1. In your Custom Page,which extend PageController, you can use navigateTo(PageController) to new page, and navigateBack() go back to last page
  2. You can use resetTo(pageId) back to specify page, and change page args like
    resetTo<HomePage>(R.id.HomePage){
    argsOfHomePage = newValue
    }

preview

About

Jetpack Compose page navigator & stack

Topics

Resources

Stars

24 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages