У настроек теперь есть своя внутренняя навигация
This commit is contained in:
parent
4f67569409
commit
f09f98e637
3 changed files with 53 additions and 2 deletions
|
@ -6,7 +6,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||
import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import ru.nm17.narodmon.ui.settings.SettingsScreen
|
||||
import ru.nm17.narodmon.ui.settings.SettingsNavigation
|
||||
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
|
@ -18,7 +18,7 @@ fun AppNavHost() {
|
|||
MainScreen(navController)
|
||||
}
|
||||
composable("settings") {
|
||||
SettingsScreen()
|
||||
SettingsNavigation()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
12
app/src/main/java/ru/nm17/narodmon/ui/settings/Settings.kt
Normal file
12
app/src/main/java/ru/nm17/narodmon/ui/settings/Settings.kt
Normal file
|
@ -0,0 +1,12 @@
|
|||
package ru.nm17.narodmon.ui.settings
|
||||
|
||||
import androidx.annotation.StringRes
|
||||
import ru.nm17.narodmon.R
|
||||
|
||||
sealed class Settings(val route: String, @StringRes val resourceId: Int) {
|
||||
|
||||
object Main : Settings("settings_main", R.string.settings)
|
||||
object AboutApp : Settings("settings_about_app", R.string.about_app)
|
||||
|
||||
object Debug : Settings("settings_debug_menu", R.string.debug_menu)
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package ru.nm17.narodmon.ui.settings
|
||||
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun SettingsNavigation() {
|
||||
val navController = rememberNavController()
|
||||
Scaffold(topBar = {
|
||||
TopAppBar(title = { Text(text = navController.currentDestination?.route ?: "") })
|
||||
}) {
|
||||
NavHost(
|
||||
navController = navController,
|
||||
startDestination = Settings.Main.route,
|
||||
modifier = Modifier.padding(it)
|
||||
) {
|
||||
composable(Settings.Main.route) { SettingsScreen(navController) }
|
||||
composable(Settings.AboutApp.route) { }
|
||||
composable(Settings.Debug.route) { }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun PreviewSettingsNavigation() {
|
||||
SettingsNavigation()
|
||||
}
|
Loading…
Reference in a new issue