项目作者: Modificator

项目描述 :
Jetpack Compose page navigator & stack
高级语言: Kotlin
项目地址: git://github.com/Modificator/compose-navigator.git
创建时间: 2020-10-13T15:06:37Z
项目社区:https://github.com/Modificator/compose-navigator

开源协议:Apache License 2.0

下载


Compose Navigator

License

Easier to complete Jetpack Compose navigation

Getting started

In your build.gradle:

  1. dependencies {
  2. implementation 'com.patchself:compose-navigator:0.1.3'
  3. }

Or if you use gradle.kts, in yourbuild.gradle.kts

  1. dependencies {
  2. implementation("com.patchself:compose-navigator:0.1.3")
  3. }

Usage

  1. Add config your compose activity
    ```kotlin
    class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {

    1. super.onCreate(savedInstanceState)
    2. //set open app first page
    3. navigationController.initController(SplashPage())
    4. setContent {
    5. navigationController.viewContent()
    6. }

    }

    override fun onBackPressed() {

    1. // navigator go back handler
    2. if (!navigationController.onBackPressed()){
    3. super.onBackPressed()
    4. }

    }
    }

  1. 2. Write your custom page
  2. ```kotlin
  3. class CustomPage : PageController() {
  4. override fun getId() = R.id.CustomPage
  5. /**
  6. * write page content in this method
  7. */
  8. @Composable
  9. override fun screenContent() {
  10. Scaffold(topBar = {
  11. TopAppBar(
  12. title = { Text(text = "Navigator Sample") },
  13. navigationIcon = {
  14. IconButton(onClick = { navigateBack() }) {
  15. Icon(asset = Icons.Filled.ArrowBack)
  16. }
  17. },
  18. elevation = 4.dp
  19. )
  20. }) {
  21. }
  22. }
  23. }
  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
    1. resetTo<HomePage>(R.id.HomePage){
    2. argsOfHomePage = newValue
    3. }
    preview