您使用Theme.MaterialComponents.DayNight....
whereDayNight
更多的是一个自适应动态主题,它会更改为材料设计的默认颜色。如果您需要对颜色和样式进行更多控制,请执行以下操作:
我想更改 UI 某些部分的颜色(搜索栏、工具栏、操作栏标题、浮动按钮等)
关于这一点,如果您想要应用程序范围内的更改,那么您可以遵循这种样式设置方法(几乎所有视图样式都可以通过这种方式完成):
<resources>
<!-- Base application theme. -->
<style name="MyTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="seekBarStyle">@style/MySeekBarStyle</item>
<item name="toolbarStyle">@style/MyToolBarStyle</item>
<item name="actionBarStyle">@style/MyActionBarStyle</item>
<item name="floatingActionButtonStyle">@MyFloatingActionButtonStyle</item>
<!-- a sample toolbar styling, choose parent with care -->
<!-- your AppTheme inheriting from MaterialComponents but toolbar
<!-- inheriting from platform theme-->
<!-- may case weird visual effects-->
<style name="MyToolBarStyle" parent="Widget.MaterialComponents.Toolbar">
<item name="titleTextColor">@color/lightWhite</item>
<item name="subtitleTextColor">@color/lightWhite</item>
</style>
</resources>
如果你想为每个设置样式,例如。ToolBar
不同的是,您可以style="@style/MyToolBarStyle"
在布局文件中使用属性来为它们中的每一个赋予不同的shape
,colour
以及您想要的其他材质效果。
关于颜色:
通常,您可以在您的应用程序中使用这些颜色属性styles.xml
来更改应用程序的完整外观。
<!-- primary colour of your brand and its variants -->
<item name="colorPrimary">@color/colorPrimary700</item>
<item name="colorPrimaryDark">@color/colorPrimary900</item>
<item name="colorPrimaryVariant">@color/colorPrimary500</item>
<!-- colour which contrasts from your primary colour -->
<item name="colorAccent">@color/colorAccent</item>
<!--secondary colour of your brand and its variants -->
<item name="colorSecondary">@color/colorSecondary700</item>
<item name="colorSecondaryVariant">@color/colorSecondary500</item>
<!--background color for your root layout file -->
<item name="android:colorBackground">@android:color/white</item>
<!--background color of children view -->
<item name="colorSurface">@color/lightWhite</item>
<!--color to show error mostly it will be red or orange
<item name="colorError">@color/colorErrorAlternate</item>
<!-- These are colors which constrasts colors defined for -->
<!-- primary, secondary, bg, surface, error respectively. -->
<!-- For eg: TextViews in Toolbar colored with colorPrimary -->
<!-- will use colorOnPrimary as their text color -->
<item name="colorOnPrimary">@color/lightWhite</item>
<item name="colorOnSecondary">@color/lightDark</item>
<item name="colorOnBackground">@color/lightDark</item>
<item name="colorOnSurface">@color/lightDark</item>
<item name="colorOnError">@color/lightDark</item>
重要链接:
- 用于设计深色主题的官方材料设计指南
- 开发黑暗主题的官方材料设计指南
- 使用 switchpreference 切换主题
- Nick Butcher 的 Medium 博客:您将在这里了解更多关于颜色的信息