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
|
package de.jadehs.strassenschadenpro2
|
||||||
|
|
||||||
|
import android.util.Log
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material.icons.Icons
|
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.Place
|
||||||
|
import androidx.compose.material.icons.filled.Settings
|
||||||
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.NavigationBar
|
import androidx.compose.material3.NavigationBar
|
||||||
|
import androidx.compose.material3.NavigationBarItem
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
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 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
|
@Composable
|
||||||
fun MainScreen(modifier: Modifier = Modifier) {
|
fun MainScreen(modifier: Modifier = Modifier) {
|
||||||
|
|
||||||
val navItemList = listOf(
|
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(),
|
Scaffold(modifier = Modifier.fillMaxSize(),
|
||||||
bottomBar = {
|
bottomBar = {
|
||||||
NavigationBar {
|
NavigationBar {
|
||||||
|
navItemList.forEachIndexed { index, item ->
|
||||||
|
NavigationBarItem(
|
||||||
|
selected = selectedIndex == index,
|
||||||
|
onClick = {
|
||||||
|
selectedIndex = index
|
||||||
|
},
|
||||||
|
icon = {Icon(item.icon, "icon")},
|
||||||
|
label = {Text(text=item.label)}
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}) {
|
}) {
|
||||||
innerPadding ->
|
innerPadding ->
|
||||||
Text(text = "Hello World",
|
ContentScreen(modifier = Modifier.padding(innerPadding), selectedIndex)
|
||||||
modifier = Modifier.padding(innerPadding)
|
}
|
||||||
)
|
}
|
||||||
|
|
||||||
|
@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