Skip to content

Commit

Permalink
Updated sample-compose
Browse files Browse the repository at this point in the history
  • Loading branch information
chRyNaN committed Jan 1, 2022
1 parent 3ea4d23 commit 828e2c9
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 50 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package com.chrynan.navigation.sample.compose

import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.*
import androidx.compose.material.BottomNavigation
import androidx.compose.material.BottomNavigationItem
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.chrynan.navigation.compose.ExperimentalNavigationApi
import com.chrynan.navigation.compose.NavContainer
import com.chrynan.navigation.compose.goTo
import com.chrynan.navigation.compose.rememberNavigatorByKey

@ExperimentalNavigationApi
@Composable
fun App() {
val navigator = rememberNavigatorByKey(
initialScope = MainScope.HOME,
initialKeys = { scope ->
when (scope) {
MainScope.HOME -> NavKey.HOME
MainScope.SETTINGS -> NavKey.SETTINGS
}
},
content = { key ->
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
when (key) {
NavKey.HOME -> {
Text("Home")

Button(modifier = Modifier.padding(top = 20.dp), onClick = { navigator.goTo(NavKey.DETAILS) }) {
Text("Details")
}
}
NavKey.SETTINGS -> {
Text("Settings")
}
NavKey.DETAILS -> {
Text("Details")
}
}
}
}
)

Column {
Box(modifier = Modifier.weight(1f)) {
NavContainer(navigator)
}

BottomNavigation {
MainScope.values().forEach { scope ->
BottomNavigationItem(
selected = false,
onClick = { navigator.changeScope(scope) },
label = { Text(scope.title) },
icon = { Image(imageVector = scope.icon, contentDescription = null) }
)
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
package com.chrynan.navigation.sample.compose

import android.os.Bundle
import androidx.activity.compose.BackHandler
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Column
import androidx.compose.material.*
import com.chrynan.navigation.compose.ExperimentalNavigationApi
import com.chrynan.navigation.compose.NavContainer
import com.chrynan.navigation.compose.goTo
import com.chrynan.navigation.compose.rememberNavigatorByKey

@OptIn(ExperimentalNavigationApi::class)
class MainActivity : AppCompatActivity() {
Expand All @@ -19,50 +13,8 @@ class MainActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)

setContent {
val navigator = rememberNavigatorByKey(
initialScope = MainScope.HOME,
initialKeys = { scope ->
when (scope) {
MainScope.HOME -> NavKey.HOME
MainScope.SETTINGS -> NavKey.SETTINGS
}
},
content = { key ->
when (key) {
NavKey.HOME -> {
Column {
Text("Home")

Button(onClick = { navigator.goTo(NavKey.DETAILS) }) {
Text("Details")
}
}
}
NavKey.SETTINGS -> {
Text("Settings")
}
NavKey.DETAILS -> {
Text("Details")
}
}
}
)

Column {
NavContainer(navigator)

BackHandler { navigator.goBack() }

BottomNavigation {
MainScope.values().forEach { scope ->
BottomNavigationItem(
selected = false,
onClick = { navigator.changeScope(scope) },
label = { Text(scope.title) },
icon = { Image(imageVector = scope.icon, contentDescription = null) }
)
}
}
MaterialTheme {
App()
}
}
}
Expand Down

0 comments on commit 828e2c9

Please sign in to comment.