gpt4 book ai didi

android - Jetpack 撰写 : Text remains black even when the theme is dark

转载 作者:行者123 更新时间:2023-12-04 23:41:22 25 4
gpt4 key购买 nike

即使主题设置为深色且背景为深色,应用程序中的文本仍然保持黑色。只需看看下面的代码和屏幕截图。
主题.kt (在这里,在 DarkColorPalette 中,我将 onSurfaceonBackground 设置为 Color.White 但没有帮助)

private val DarkColorPalette = darkColors(
primary = PastelGreen,
secondary = PastelGreenTransparent,
onPrimary = Color.White,
onSecondary = PastelGreen,
onBackground = Color.White,
onSurface = Color.White
)

private val LightColorPalette = lightColors(
primary = PastelGreen,
secondary = PastelGreenTransparent,
onPrimary = Color.White,
onSecondary = PastelGreen,
)

@Composable
fun EschoolTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable() () -> Unit) {

MaterialTheme(
colors = if (darkTheme) DarkColorPalette else LightColorPalette,
typography = typography,
shapes = Shapes,
content = content
)
}
类型.kt
val manropeFamily = FontFamily(
Font(R.font.light, FontWeight.Light),
Font(R.font.regular, FontWeight.Normal),
Font(R.font.medium, FontWeight.Medium),
Font(R.font.bold, FontWeight.Bold),
Font(R.font.extra_bold, FontWeight.ExtraBold),
Font(R.font.extra_light, FontWeight.ExtraLight),
Font(R.font.semi_bold, FontWeight.SemiBold),
)

val typography =
Typography(
defaultFontFamily = manropeFamily,
h5 = TextStyle(fontWeight = FontWeight.Bold, fontSize = 23.sp,),
button = TextStyle(letterSpacing = 0.sp, fontWeight = FontWeight.Bold)
)
屏幕代码 (不要在意俄语文本)
@Composable
fun Onboarding() {
EschoolTheme {
Column(
modifier = Modifier
.padding(20.dp)
) {
Column(
Modifier
.weight(1f)
.fillMaxWidth()
) {
Spacer(modifier = Modifier.weight(1f))
Image(
painter = painterResource(id = R.drawable.icon),
contentDescription = "Иконка приложения со смайлом, смотрящим через монокль",
modifier = Modifier
.align(Alignment.CenterHorizontally)
.size(100.dp)
)
Spacer(modifier = Modifier.height(30.dp))
Text(
"Добро пожаловать в eschool!",
textAlign = TextAlign.Center,
style = MaterialTheme.typography.h5,
modifier = Modifier.align(
Alignment.CenterHorizontally
)
)
Spacer(modifier = Modifier.weight(1f))
}
Text(
"Здесь ты можешь быстро делиться домашкой и расписанием со своими одноклассниками без всяких мессенжджеров. Используй это приложение как школьный дневник, в который ты обычно записываешь д/з и расписание. Всё, что ты записываешь сюда, будет сразу видно и твоим одноклассникам. Тебе больше не придётся ждать ответа от твоих одноклассников в мессенджерах или наоборот отвечать им. Чтобы начать пользоваться приложением, надо войти в аккаунт.",
style = MaterialTheme.typography.body2
)
Spacer(modifier = Modifier.height(20.dp))
LargeButton(onClick = { /*TODO*/ }, secondary = true) {
Text("У меня уже есть аккаунт")
}
Spacer(modifier = Modifier.height(10.dp))
LargeButton(onClick = { /*TODO*/ }) {
Text("Я тут в первый раз")
}
}
}
}

截图


深色主题
轻主题


Dark theme screenshot
enter image description here


如果你需要更多代码,问我,我会提供

最佳答案

Text 中的颜色由 color 定义参数或应用 TextStyle .默认值为 Color.Unspecified .
如果颜色 = Color.Unspecified并且样式没有颜色设置,这将是 LocalContentColor 它提供了一个默认的 Color.Black 如果没有指定颜色。
你有不同的选择:

  • 您可以将 添加为父容器Surface .在这种情况下,它将使用 Colors.onSurface在您的主题中指定。
  •     Surface(){
    Column(){
    Text(){...}
    }
    }
  • 使用 color Text 中的参数可组合的
  • 使用 style 范围:
  • Text(style = LocalTextStyle.current.copy(color = Red)){...}
  • 使用自定义 LocalContentColor 覆盖默认值 Black颜色
  • CompositionLocalProvider(LocalContentColor provides MaterialTheme.colors.xxx) {
    Text()
    }

    关于android - Jetpack 撰写 : Text remains black even when the theme is dark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68769263/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com