我试着从jetpack组合开始,它变得越来越复杂,能够根据用户选择的主题(浅暗)自动改变背景。
我正在编辑theme.kt中的颜色
private val DarkColorScheme = darkColorScheme(
primary = Purple80,
secondary = PurpleGrey80,
tertiary = Pink80,
surface = Color(0xFF0BB000),
background = Color(0xFF0BB000),
onBackground = Color(0xFF0BB000))
问题是,当我运行应用程序时,背景色仍然是灰色的。
我认为问题是我的应用程序没有从主题中获取颜色,因为我试图直接设置它,但它也没有改变背景色。
Surface ( color = MaterialTheme.colorScheme.background)
如果有人知道为什么它不自动变色并告诉我,我将不胜感激。
我可以从我的活动中再次设置调色板并更改它,这取决于用户选择的模式,但这不是一个最优的解决方案,看起来很难看。
我离开我的活动。kt
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
TruequeGualeguaychuTheme {
Surface ( color = MaterialTheme.colorScheme.background){
Text(
modifier = Modifier
.fillMaxSize()
.wrapContentHeight(),
textAlign = TextAlign.Center,
text = "Hello Android!",
)
}
}
}
}
}
它应该有一个绿色背景,但它没有采用中声明的颜色(background = Color(0xFF0BB000))
4条答案
按热度按时间kuuvgm7e1#
我以前也实现过类似的功能,不过是在Jb-compose桌面,请参考:
MainApp.kt:
Main.kt:
我希望这对你有帮助。
ogq8wdun2#
第一个月
可以创建如下颜色,并在曲面背景色中使用该颜色。
q8l4jmvw3#
看起来你遗漏的部分是@vaspike的答案中暗示的。所有应该使用你的自定义主题的视图都应该从主题的示例中派生出来。例如:
这来自www.example.com上的示例https://developer.android.com/codelabs/jetpack-compose-theming#3
nbewdwxp4#
问题是新版本的android有动态颜色,使用基于系统的调色板,默认情况下,主题有这个选项激活,这限制了一个人可以设置调色板。