我试图建立一个新的项目与jetpack撰写材料设计3,但我不能得到的主题工作,屏幕上总是显示默认的android颜色。
下面是我的MaterialTheme()
:
import androidx.compose.material3.MaterialTheme
@Composable
fun AppTheme(
darkTheme: Boolean = true,
content: @Composable () -> Unit
) {
val colorScheme = if (darkTheme) {
DarkColorScheme
} else {
LightColorScheme
}
MaterialTheme(
colorScheme = colorScheme,
content = content
)
}
这就是colorSchemes
:
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
private val DarkColorScheme = darkColorScheme(
primary = DarkPrimary,
secondary = DarkSecondary,
background = Color.Black,
surface = DarkBackground,
onPrimary = Color.DarkGray,
onSecondary = Color.White,
onBackground = Color.White,
onSurface = Color.White
)
private val LightColorScheme = lightColorScheme(
primary = LightPrimary,
secondary = LightSecondary,
background = Color.White,
surface = Color.White,
onPrimary = Color.White,
onSecondary = Color.Black,
onBackground = Color.Black,
onSurface = Color.Black
)
以下是一些颜色的示例:
import androidx.compose.ui.graphics.Color
val DarkBackground = Color(0xFF363636)
val DarkPrimary = Color(0xFFaac3e1)
最后,这是我如何在MainActivity.kt
中使用主题:
@OptIn(ExperimentalMaterial3WindowSizeClassApi::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
AppTheme {
//App content...
}
}
}
但当我启动应用程序时,我只看到默认的Android应用程序颜色,此屏幕截图来自启用黑暗模式的应用程序(没有黑暗模式时完全相同):
此登录页面仅包含输入、文本和按钮字段,我是否需要为主题添加一些内容,以便在我传递到主活动主题的应用内容上找到主题?
感谢任何帮助,如果我错过了一些明显的东西,我道歉!
1条答案
按热度按时间qoefvg9y1#
正如@ ianhanniblake在他的评论中提到的。如果你要从Material 2迁移到Material 3,请确保你也从UI中删除了所有Material 2元素(文本,按钮等)。理想情况下,如果可以的话,只删除Material 2的依赖关系。