ajout de la bottomNavBar ( encore du travail dessus)

android
Patrick BRUGIERE 1 year ago
parent a8de648b8b
commit a8cffafe16

@ -40,7 +40,7 @@ android {
compose = true compose = true
} }
composeOptions { composeOptions {
kotlinCompilerExtensionVersion = "1.5.11" kotlinCompilerExtensionVersion = "1.5.1"
} }
packaging { packaging {
resources { resources {

@ -12,11 +12,15 @@ import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.foundation.layout.wrapContentWidth
import androidx.compose.material.BottomNavigation import androidx.compose.material.BottomNavigation
import androidx.compose.material.BottomNavigationItem import androidx.compose.material.BottomNavigationItem
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Favorite
import androidx.compose.material3.Button import androidx.compose.material3.Button
import androidx.compose.material3.Icon
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface import androidx.compose.material3.Surface
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.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
@ -26,42 +30,64 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.navigation.NavDestination.Companion.hierarchy
import androidx.navigation.NavGraph.Companion.findStartDestination
import androidx.navigation.compose.NavHost import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController import androidx.navigation.compose.rememberNavController
import sae.android.sae_2a.R import sae.android.sae_2a.R
import sae.android.sae_2a.game.VocabularyScreen import sae.android.sae_2a.game.VocabularyScreen
@Preview
val items = listOf(
Screen.VocabularyList,
Screen.Game
)
@Preview
@Composable @Composable
fun MyApp() { fun MyApp() {
val navController = rememberNavController() val navController = rememberNavController()
/* Scaffold( Scaffold(
bottomBar = { bottomBar = {
BottomNavigation { BottomNavigation {
BottomNavigationItem(selected = , onClick = { /*TODO*/ }, icon = { /*TODO*/ }){ val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentDestination = navBackStackEntry?.destination
items.forEach { screen ->
BottomNavigationItem(
label = { Text(stringResource(screen.resourceId)) },
selected = currentDestination?.hierarchy?.any { it.route == screen.route } == true,
onClick = {
navController.navigate(screen.route) {
popUpTo(navController.graph.findStartDestination().id) {
saveState = true
} }
launchSingleTop = true
restoreState = true
} }
},
icon = {
Icon(
Icons.Filled.Favorite, contentDescription = null
)
})
} }
)*/ }
NavHost(navController, startDestination = "HomeScreen") { }
composable("HomeScreen") { HomeScreen( NavigateToRegister = { navController.navigate("RegisterScreen")} ,NavigateToLogin = { navController.navigate("GameScreen") }) } ){ innerPadding ->
composable("VocabularyScreen") { VocabularyScreen(onNavigateToList = { navController.popBackStack() }) } NavHost(navController, startDestination = Screen.Home.route, Modifier.padding(innerPadding)) {
composable("RegisterScreen") { RegisterScreen(NavigateToApp = { navController.navigate("VocabularyScreen") }) } composable(Screen.Home.route) { HomeScreen( NavigateToRegister = { navController.navigate(Screen.Register.route)} ,NavigateToLogin = { navController.navigate(Screen.Game.route) }) }
composable("GameScreen"){ GameScreen() { composable(Screen.VocabularyList.route) { VocabularyScreen(onNavigateToList = { navController.popBackStack() }) }
// composable(Screen.Register.route) { RegisterScreen(NavigateToApp = { navController.navigate(Screen.VocabularyList.route) }) }
composable(Screen.Game.route){ GameScreen() {
} } } }
} }
} }
@Composable
fun BottomNav(){
} }
@Composable @Composable
fun HomeScreen(NavigateToRegister: () -> Unit,NavigateToLogin: () -> Unit ){ fun HomeScreen(NavigateToRegister: () -> Unit,NavigateToLogin: () -> Unit ){

@ -0,0 +1,16 @@
package sae.android.sae_2a.view
import androidx.annotation.StringRes
import sae.android.sae_2a.R
sealed class Screen(val route: String, @StringRes val resourceId: Int) {
object Profile : Screen("profile", R.string.profilePicture)
object Home : Screen("HomeScreen", R.string.home)
object VocabularyList : Screen("VocabularyListScreen", R.string.voc_image_description)
object Game : Screen("GameScreen", R.string.game)
object Register : Screen("RegisterScreen", R.string.register)
}

@ -10,7 +10,9 @@
<string name="created_by">Created by\u0020</string> <string name="created_by">Created by\u0020</string>
<string name="unknown">Unknown</string> <string name="unknown">Unknown</string>
<string name="profilePicture">Profile Picture</string> <string name="profilePicture">Profile Picture</string>
<string name="game">Game</string>
<string name="home">Home</string> <string name="home">Home</string>
<string name="register">Register</string>
<string name="accountDetails">Account Details</string> <string name="accountDetails">Account Details</string>
<string name="changepswd">Change Password</string> <string name="changepswd">Change Password</string>
</resources> </resources>
Loading…
Cancel
Save