24. août 2021 ( Android, Développement, Jetpack Compose )

Si vous ne voulez pas avoir une vue tronquée car elle passe sous la bottom bar

Mon code de départ ressemblait à ça :

Scaffold(
        bottomBar = { BottomNavigationBar(navController) },
        topBar = { Text("Coucou") } 
) {
        PlayScreen()
}

C’est bien mais sans plus car la vue PlayScreen allait se terminer sous la BottomNavigationBar

@Composable
fun PlayScreen() {
    Column(
        modifier = Modifier
            .fillMaxSize(), 
        verticalArrangement = Arrangement.SpaceBetween
    ) {
        Text(
            text = "Play game"
        )
        Text(
            text = "Play game"
        )
    }
}

Pour éviter cela, il y a un paramètre sur Scaffold qui s’appelle innerPadding (de type PaddingValues qui permet de passer a la vue finale les paddings à rajouter pour qu’elle ne déborde pas

Ce qui donne

Scaffold(
        bottomBar = { BottomNavigationBar(navController) },
        topBar = { Text("Coucou") } 
) { innerPadding ->
        PlayScreen(padding = innerPadding)
}

Et dans la vue finale

@Composable
fun PlayScreen(padding: PaddingValues) {
    Column(
        modifier = Modifier
            .fillMaxSize()
            .padding(padding), 
        verticalArrangement = Arrangement.SpaceBetween
    ) {
        Text(
            text = "Play game"
        )
        Text(
            text = "Play game"
        )
    }
}

Et la plus de soucis