avancer androidi ajout de la navigation

android
Patrick BRUGIERE 1 year ago
parent eb6cc013d5
commit be82ce5117

@ -13,7 +13,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import sae.android.sae_2a.ui.theme.SAE_2ATheme
import sae.android.sae_2a.screen.HomeScreen
import sae.android.sae_2a.ui.screen.MyApp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
@ -26,7 +26,7 @@ class MainActivity : ComponentActivity() {
color = MaterialTheme.colorScheme.background
) {
Greeting("Android")
HomeScreen()
MyApp()
}
}
}

@ -1,6 +1,5 @@
package sae.android.sae_2a.screen
package sae.android.sae_2a.ui.screen
import android.content.res.Resources.Theme
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
@ -24,11 +23,29 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import sae.android.sae_2a.R
import sae.android.sae_2a.game.VocabularyScreen
import sae.android.sae_2a.ui.screen.RegisterScreen
@Composable
fun MyApp() {
val navController = rememberNavController()
NavHost(navController, startDestination = "HomeScreen") {
composable("HomeScreen") { HomeScreen( NavigateToRegister = { navController.navigate("RegisterScreen")} ,NavigateToLogin = { navController.navigate("VocabularyScreen") }) }
composable("VocabularyScreen") { VocabularyScreen(onNavigateToList = { navController.navigate("HomeScreen") }) }
composable("RegisterScreen") { RegisterScreen(NavigateToApp = { navController.navigate("VocabularyScreen") }) }
}
}
@Preview
@Composable
fun HomeScreen(){
fun HomeScreen(NavigateToRegister: () -> Unit,NavigateToLogin: () -> Unit ){
Surface(modifier = Modifier
.wrapContentWidth(align = Alignment.CenterHorizontally)
@ -38,31 +55,35 @@ fun HomeScreen(){
.background(color = Color.Gray)
.wrapContentWidth(align = Alignment.CenterHorizontally)){
Image(
painter = painterResource(id = R.drawable.ic_launcher_foreground),
painter = painterResource(id = R.drawable.logo),
contentDescription = "Description de l'image",
modifier = Modifier
.wrapContentWidth(align = Alignment.CenterHorizontally)
.width(800.dp)
.padding(40.dp)
.size(width = 200.dp, height = 200.dp)
.padding(16.dp)
)
Text(text ="InEnglishPlease", color = Color.White, fontSize = 18.sp, fontWeight = FontWeight(1000) , modifier = Modifier
.padding(30.dp)
Text(text ="InEnglishPlease", color = Color.White, fontSize = 30.sp, fontWeight = FontWeight(1000) , modifier = Modifier
.padding(40.dp)
.wrapContentHeight(align = Alignment.Top)
.wrapContentWidth(align = Alignment.CenterHorizontally)
.align(alignment = Alignment.CenterHorizontally))
Button( onClick = { /*TODO*/ }, modifier = Modifier
Button( onClick = { NavigateToLogin() }, modifier = Modifier
.padding(15.dp)
.width(130.dp)
.padding(30.dp)
.width(150.dp)
.height(80.dp)
.align(alignment = Alignment.CenterHorizontally)) {
Text(text = "Login", fontSize = 16.sp)
Text(text = "Login", fontSize = 20.sp)
}
Button(onClick = { /*TODO*/ },modifier = Modifier
.padding(15.dp)
.width(130.dp)
Button(onClick = { NavigateToRegister() },modifier = Modifier
.padding(30.dp)
.width(150.dp)
.height(80.dp)
.align(alignment = Alignment.CenterHorizontally)) {
Text(text = "Register", fontSize = 16.sp)
Text(text = "Register", fontSize = 20.sp)
}
}
}

@ -0,0 +1,92 @@
package sae.android.sae_2a.ui.screen
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.layout.wrapContentWidth
import androidx.compose.material3.Button
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.material3.TextField
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.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import sae.android.sae_2a.R
@Composable
fun RegisterScreen(NavigateToApp: () -> Unit ) {
var name by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") }
Surface(modifier = Modifier
.wrapContentWidth(align = Alignment.CenterHorizontally)
.wrapContentHeight(align = Alignment.CenterVertically)
.fillMaxSize(),) {
Column(modifier = Modifier
.background(color = Color.White)
.wrapContentWidth(align = Alignment.CenterHorizontally)) {
Image(
painter = painterResource(id = R.drawable.logo2),
contentDescription = "Description de l'image",
modifier = Modifier
.wrapContentWidth(align = Alignment.CenterHorizontally)
.width(800.dp)
.padding(40.dp)
.size(width = 200.dp, height = 200.dp)
)
TextField(
value = name,
onValueChange = { name = it },
label = { Text("Name") },
modifier = Modifier.padding(20.dp)
.wrapContentWidth(align = Alignment.CenterHorizontally)
.align(alignment = Alignment.CenterHorizontally)
)
TextField(
value = password,
onValueChange = { password = it },
label = { Text("Name") },
modifier = Modifier.padding(20.dp)
.wrapContentWidth(align = Alignment.CenterHorizontally)
.align(alignment = Alignment.CenterHorizontally)
)
Button(onClick = { NavigateToApp() },modifier = Modifier
.padding(30.dp)
.width(150.dp)
.height(80.dp)
.align(alignment = Alignment.CenterHorizontally)
) {
Text("Register", fontWeight = FontWeight(1000), fontSize = 24.sp)
}
}
}
}

@ -37,7 +37,7 @@ import androidx.compose.ui.unit.sp
import sae.android.sae_2a.R
@Composable
fun VocabularyScreen(){
fun VocabularyScreen(onNavigateToList: () -> Unit){
val vocabulary = listOf(
Vocabulary("test","Autheur", hashMapOf("Fromage" to "Cheese", "Pomme" to "Apple")),
Vocabulary("test2","Autheur2", hashMapOf("Fromage" to "Cheese", "Pomme" to "Apple"))

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Loading…
Cancel
Save