Box umožňuje prekrývať prvky cez seba (ako position: relative v CSS). Prvky sa kladú na seba:
import androidx.compose.desktop.ui.tooling.preview.Preview
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application
@Composable
fun BoxExample() {
MaterialTheme {
Surface {
Box(
modifier = Modifier.size(200.dp).background(Color.LightGray),
contentAlignment = Alignment.Center
) {
// Pozadie
Box(modifier = Modifier.size(150.dp).background(Color.Cyan))
// Predny prvok
Box(modifier = Modifier.size(100.dp).background(Color.Red))
// Text navrchu
Text("Navrchu", color = Color.White)
}
}
}
}
fun main() = application {
Window(onCloseRequest = ::exitApplication, title = "Box") {
BoxExample()
}
}
contentAlignment určuje, ako sú vnorené prvky zarovnané v Box-e:
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center // centrovanie vsetkych prvku
) {
Text("Centrovany text")
}
Boxnie je určený na klasické rozloženie - na to slúžiColumnaRow.
Vytvor Box s farebným pozadím a textom vycentrovaným v jeho strede.
Pridaj do pravého horného rohu ikony malý textový badge s číslom 3.
Vytvor prekrytie s polopriehľadným pozadím a tlačidlom umiestneným navrchu.