# compose-navigator **Repository Path**: mirrors_Modificator/compose-navigator ## Basic Information - **Project Name**: compose-navigator - **Description**: Jetpack Compose page navigator & stack - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-15 - **Last Updated**: 2026-03-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Compose Navigator [![License](https://img.shields.io/badge/license-Apache%202-green.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![](https://jitpack.io/v/com.patchself/compose-navigator.svg)](https://jitpack.io/#com.patchself/compose-navigator) Easier to complete Jetpack Compose navigation ## Getting started In your `build.gradle`: ```groovy dependencies { implementation 'com.patchself:compose-navigator:0.1.3' } ``` Or if you use gradle.kts, in your`build.gradle.kts` ```kotlin dependencies { implementation("com.patchself:compose-navigator:0.1.3") } ``` ## Usage 1. Add config your compose activity ```kotlin class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //set open app first page navigationController.initController(SplashPage()) setContent { navigationController.viewContent() } } override fun onBackPressed() { // navigator go back handler if (!navigationController.onBackPressed()){ super.onBackPressed() } } } ``` 2. Write your custom page ```kotlin class CustomPage : PageController() { override fun getId() = R.id.CustomPage /** * write page content in this method */ @Composable override fun screenContent() { Scaffold(topBar = { TopAppBar( title = { Text(text = "Navigator Sample") }, navigationIcon = { IconButton(onClick = { navigateBack() }) { Icon(asset = Icons.Filled.ArrowBack) } }, elevation = 4.dp ) }) { } } } ``` 3. In your Custom Page,which extend `PageController`, you can use `navigateTo(PageController)` to new page, and `navigateBack()` go back to last page 4. You can use `resetTo(pageId)` back to specify page, and change page args like ```kotlin resetTo(R.id.HomePage){ argsOfHomePage = newValue } ``` ![preview](./images/preview.gif "")