Mám vzorek, který jsem použít Jetpack skládat v něm : https://github.com/alirezaeiii/SampleCompose
Tady je moje Téma pro aplikace, která je výchozí Android Studio :
@Composable
fun ComposeTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable() () -> Unit) {
val colors = if (darkTheme) {
DarkColorPalette
} else {
LightColorPalette
}
MaterialTheme(
colors = colors,
typography = Typography,
shapes = Shapes,
content = content
)
}
Základnu na to, když jsem v temné režimu, Text je barva světla. jako příklad Textů v Seznamu položky:
@Composable
fun VerticalListItem(item: Poster, callback: OnClickListener) {
val typography = MaterialTheme.typography
Column(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp)
.clickable(onClick = { callback.onClick(item) })
) {
ImageView(url = item.poster, height = 150.dp)
Spacer(Modifier.height(16.dp))
Text(
text = item.name,
style = typography.h6
)
Text(
text = item.release,
style = typography.body2
)
Text(
text = item.playtime,
style = typography.subtitle2
)
}
}
Mám DetailView takto :
@Composable
fun DetailView(item: Poster, pressOnBack: () -> Unit, sendNotification: () -> Unit) {
val typography = MaterialTheme.typography
Column(
modifier = Modifier
.verticalScroll(rememberScrollState())
.fillMaxHeight()
) {
Box {
ImageView(url = item.poster, height = 420.dp)
Icon(
imageVector = Icons.Filled.ArrowBack,
tint = Color.White,
contentDescription = null,
modifier = Modifier
.padding(12.dp)
.clickable(onClick = pressOnBack)
)
}
Spacer(Modifier.height(8.dp))
Button(
onClick = sendNotification,
modifier = Modifier.align(Alignment.CenterHorizontally)
) {
Text(text = "DeepLink")
}
Spacer(Modifier.height(8.dp))
Surface {
Text(
modifier = Modifier.padding(8.dp),
text = item.description,
style = typography.body2
)
}
}
}
Jak vidíte, Text je obklopen Surface
, jinak to bude Tmě v Tmavém režimu. Proč je, že? Proč moje další Texty, například v VerticalListItem
není třeba Surface
? Mám také Tlačítko v DetailView
což se ukazuje Světlo v Tmavém režimu. Nemohu pochopit, proč tento konkrétní Text je třeba Surface
.
VerticalListItem
. BTW děkuji za návrh.