Billy Newman
02/27/2023, 6:51 PMKirill Grouchnikov
02/27/2023, 6:55 PMMaterialTheme
wrapper that provides that color scheme? If so, how do you expect its onSurfaceVariant
to change? Those entries are not “aware” of the background color of your surface.Billy Newman
02/27/2023, 7:03 PMSurface() { //light
MyTextComposable()
}
Surface(color = MaterialTheme.colorScheme.primary) { // dark
MyTextComposable()
}
@Composable
fun MyTextComposable() {
CompositionLocalProvider(LocalContentColor provides MaterialTheme.colorScheme.onSurfaceVariant) {
Text(...)
}
}
This worked w/ the material2 compose library out of the box. However, material3 the text is always black.Kirill Grouchnikov
02/27/2023, 7:06 PMLocalContentColor
always sees the same onSurfaceVariant
Kirill Grouchnikov
02/27/2023, 7:08 PMMaterialTheme
that is using dark colorsKirill Grouchnikov
02/27/2023, 7:09 PMMaterialTheme(*darkColorS*cheme())
Kirill Grouchnikov
02/27/2023, 7:09 PMBilly Newman
02/27/2023, 7:22 PMKirill Grouchnikov
02/27/2023, 8:10 PMimport androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.*
fun main() = application {
Window(
onCloseRequest = ::exitApplication,
state = WindowState(
placement = WindowPlacement.Floating,
position = WindowPosition.Aligned(alignment = Alignment.Center),
size = DpSize(400.dp, 400.dp)
)
) {
Column(modifier = Modifier.fillMaxSize()) {
MaterialTheme(colorScheme = lightColorScheme()) {
MySurface(modifier = Modifier.fillMaxWidth().fillMaxHeight(0.5f))
}
MaterialTheme(colorScheme = darkColorScheme()) {
MySurface(modifier = Modifier.fillMaxWidth().fillMaxHeight(1.0f))
}
}
}
}
@Composable
fun MySurface(modifier: Modifier) {
Surface(modifier = modifier) {
Column(modifier = Modifier.fillMaxSize().padding(12.dp)) {
Text(color = MaterialTheme.colorScheme.onSurface, text = "Text 1")
Text(color = MaterialTheme.colorScheme.onSurfaceVariant, text = "Text 2")
}
}
}
Kirill Grouchnikov
02/27/2023, 8:11 PMKirill Grouchnikov
02/27/2023, 8:12 PMKirill Grouchnikov
02/27/2023, 8:12 PMSurface
Billy Newman
02/28/2023, 2:44 PM