当您在Android Studio中创建新项目时,选择模板Jetpack Compose Material3,您将获得一个在themes.xml中定义以下内容的项目:
<style name="Theme.ComposeMaterial3" parent="android:Theme.Material.Light.NoActionBar" />
1.自从可组合对象
参考材质3样式?(合成材质3主题)
1.为什么不将其设置为父“Theme.Material3..."?
当您在Android Studio中创建新项目时,选择模板Jetpack Compose Material3,您将获得一个在themes.xml中定义以下内容的项目:
<style name="Theme.ComposeMaterial3" parent="android:Theme.Material.Light.NoActionBar" />
1.自从可组合对象
参考材质3样式?(合成材质3主题)
1.为什么不将其设置为父“Theme.Material3..."?
2条答案
按热度按时间9vw9lbht1#
在应用中,您可以定义更多合成主题(例如在
Theme.kt
文件中)。要应用其中的一个,你必须用最喜欢的主题 Package 你的作曲。
例如:
关于xml中定义的主题,可以扩展一个M3主题为例:
Theme.Material3.Light.NoActionBar
但 composer 们并不使用它他们使用作曲主题
在
themes.xml
中定义的主题被用在素材组件库中(和其他小部件一样作为状态栏)。为什么不将其设置为父“Theme.Material3..."?
您的主题定义为:
MaterialTheme
**在程序包androidx.compose.material3
中定义dojqjjoe2#
1.是的,它正在被使用。应用程序本身仍然可以使用xml主题,比如状态栏颜色和应用程序图标。一个很好的例子是https://github.com/android/compose-samples/tree/main/Jetchat项目。你可以看到他们是如何在该项目中使用Material3主题实现多个android版本的“material you”风格的。
1.这将是模板设计者的一个问题。在我看来,如果你看看JetChat中实现多个Android版本主题一致所需的基于主题的配置的数量,我可以相信ComposeMaterial3模板试图让事情变得更简单,以突出ComposeMaterial3中的概念。(尽管绝对没有证据支持这一点)。