From 9e59bd9e8588c4821cf41977b1742f1f7f5b9224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Ahlers?= Date: Thu, 6 Nov 2025 11:17:57 +0100 Subject: [PATCH] Add navigation and individual page components to MainScreen with scaffold setup --- .../jadehs/strassenschadenpro2/MainScreen.kt | 47 +++++++++++++++++-- .../strassenschadenpro2/pages/CreatePage.kt | 10 ++++ .../strassenschadenpro2/pages/ListPage.kt | 10 ++++ .../strassenschadenpro2/pages/MapPage.kt | 10 ++++ .../strassenschadenpro2/pages/SettingsPage.kt | 10 ++++ 5 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/de/jadehs/strassenschadenpro2/pages/CreatePage.kt create mode 100644 app/src/main/java/de/jadehs/strassenschadenpro2/pages/ListPage.kt create mode 100644 app/src/main/java/de/jadehs/strassenschadenpro2/pages/MapPage.kt create mode 100644 app/src/main/java/de/jadehs/strassenschadenpro2/pages/SettingsPage.kt diff --git a/app/src/main/java/de/jadehs/strassenschadenpro2/MainScreen.kt b/app/src/main/java/de/jadehs/strassenschadenpro2/MainScreen.kt index 551d930..84e5ad2 100644 --- a/app/src/main/java/de/jadehs/strassenschadenpro2/MainScreen.kt +++ b/app/src/main/java/de/jadehs/strassenschadenpro2/MainScreen.kt @@ -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() } } \ No newline at end of file diff --git a/app/src/main/java/de/jadehs/strassenschadenpro2/pages/CreatePage.kt b/app/src/main/java/de/jadehs/strassenschadenpro2/pages/CreatePage.kt new file mode 100644 index 0000000..e73c2f8 --- /dev/null +++ b/app/src/main/java/de/jadehs/strassenschadenpro2/pages/CreatePage.kt @@ -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") +} \ No newline at end of file diff --git a/app/src/main/java/de/jadehs/strassenschadenpro2/pages/ListPage.kt b/app/src/main/java/de/jadehs/strassenschadenpro2/pages/ListPage.kt new file mode 100644 index 0000000..75fb157 --- /dev/null +++ b/app/src/main/java/de/jadehs/strassenschadenpro2/pages/ListPage.kt @@ -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") +} \ No newline at end of file diff --git a/app/src/main/java/de/jadehs/strassenschadenpro2/pages/MapPage.kt b/app/src/main/java/de/jadehs/strassenschadenpro2/pages/MapPage.kt new file mode 100644 index 0000000..93f3ffc --- /dev/null +++ b/app/src/main/java/de/jadehs/strassenschadenpro2/pages/MapPage.kt @@ -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") +} \ No newline at end of file diff --git a/app/src/main/java/de/jadehs/strassenschadenpro2/pages/SettingsPage.kt b/app/src/main/java/de/jadehs/strassenschadenpro2/pages/SettingsPage.kt new file mode 100644 index 0000000..2091e77 --- /dev/null +++ b/app/src/main/java/de/jadehs/strassenschadenpro2/pages/SettingsPage.kt @@ -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") +} \ No newline at end of file