forked from jo1042/StrassenSchadenPro2
Add navigation and individual page components to MainScreen with scaffold setup
This commit is contained in:
@@ -1,31 +1,68 @@
|
||||
package de.jadehs.strassenschadenpro2
|
||||
|
||||
import android.util.Log
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.AddCircle
|
||||
import androidx.compose.material.icons.filled.List
|
||||
import androidx.compose.material.icons.filled.Place
|
||||
import androidx.compose.material.icons.filled.Settings
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.NavigationBar
|
||||
import androidx.compose.material3.NavigationBarItem
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import de.jadehs.strassenschadenpro2.pages.CreatePage
|
||||
import de.jadehs.strassenschadenpro2.pages.ListPage
|
||||
import de.jadehs.strassenschadenpro2.pages.MapPage
|
||||
import de.jadehs.strassenschadenpro2.pages.SettingsPage
|
||||
|
||||
@Composable
|
||||
fun MainScreen(modifier: Modifier = Modifier) {
|
||||
|
||||
val navItemList = listOf(
|
||||
NavItem("Karte",Icons.Default.Place)
|
||||
NavItem("Karte",Icons.Default.Place),
|
||||
NavItem("Erstellen",Icons.Default.AddCircle),
|
||||
NavItem("Liste",Icons.Default.List),
|
||||
NavItem("Einstellungen",Icons.Default.Settings)
|
||||
)
|
||||
|
||||
var selectedIndex by remember { mutableStateOf(0) }
|
||||
|
||||
Scaffold(modifier = Modifier.fillMaxSize(),
|
||||
bottomBar = {
|
||||
NavigationBar {
|
||||
|
||||
navItemList.forEachIndexed { index, item ->
|
||||
NavigationBarItem(
|
||||
selected = selectedIndex == index,
|
||||
onClick = {
|
||||
selectedIndex = index
|
||||
},
|
||||
icon = {Icon(item.icon, "icon")},
|
||||
label = {Text(text=item.label)}
|
||||
)
|
||||
}
|
||||
}
|
||||
}) {
|
||||
innerPadding ->
|
||||
Text(text = "Hello World",
|
||||
modifier = Modifier.padding(innerPadding)
|
||||
)
|
||||
ContentScreen(modifier = Modifier.padding(innerPadding), selectedIndex)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun ContentScreen(modifier: Modifier = Modifier, selectedIndex: Int) {
|
||||
|
||||
when(selectedIndex) {
|
||||
0 -> MapPage()
|
||||
1 -> CreatePage()
|
||||
2 -> ListPage()
|
||||
3 -> SettingsPage()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package de.jadehs.strassenschadenpro2.pages
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
|
||||
@Composable
|
||||
fun CreatePage(modifier: Modifier = Modifier) {
|
||||
Text("Erstellen")
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package de.jadehs.strassenschadenpro2.pages
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
|
||||
@Composable
|
||||
fun ListPage(modifier: Modifier = Modifier) {
|
||||
Text("Liste")
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package de.jadehs.strassenschadenpro2.pages
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
|
||||
@Composable
|
||||
fun MapPage(modifier: Modifier = Modifier) {
|
||||
Text("Karte")
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package de.jadehs.strassenschadenpro2.pages
|
||||
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
|
||||
@Composable
|
||||
fun SettingsPage(modifier: Modifier = Modifier) {
|
||||
Text("Einstellungen")
|
||||
}
|
||||
Reference in New Issue
Block a user