我正在尝试学习如何使用styles.xml文件为应用程序设置样式,其中有一些问题需要澄清才能理解。
在一个Item中,设置
android:actionbarstyle
和只设置actionbarstyle
有什么区别?我知道在这种情况下,我必须同时定义两者,但是为什么?对于所有其他情况呢?例如android:colorPrimary
和只有colorPrimary
?在那种情况下,我会收到一个错误,说android:colorPrimary
只能与min API级别21一起使用。那么,有人能够对android:
前缀的作用进行解释,以及它如何影响我的应用程序吗?是否有一个不同父样式的参考,例如
parent="@style/Widget.AppCompat.Light.ActionBar
以及它们的含义?如何找到特定项目可用的不同父样式列表,以及我可以在其中“override”什么?目前,这主要是我猜测....
仅作参考,以下是我的当前styles.xml文件。
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme" parent="MyTheme"/>
<style name="MyTheme" parent="Theme.AppCompat.Light">
<item name="actionBarTheme">@style/MyTheme.ActionBarTheme</item>
<item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
<item name="actionBarStyle">@style/MyTheme.ActionBarStyle</item>
<item name="colorPrimary">@color/my_green</item>
<item name="colorPrimaryDark">@color/my_forest</item>
<item name="colorAccent">@color/my_soil</item>
<item name="drawerArrowStyle">@style/MyTheme.DrawerArrowStyle</item>
<item name="android:actionOverflowButtonStyle">@style/MyTheme.OverFlow</item>
<item name="android:actionMenuTextColor">@color/white</item>
<item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
<item name="android:homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
<item name="colorControlNormal">@color/my_green</item>
<item name="colorControlActivated">@color/my_forest</item>
<item name="colorControlHighlight">@color/my_deep_green</item>
</style>
<style name="MyTheme.ActionBarTheme" parent="@style/ThemeOverlay.AppCompat.ActionBar">
<!-- This sets the BACK arrow to white. Otherwise it's black. Must be placed in the theme-->
<item name="colorControlNormal">@color/white</item>
</style>
<style name="MyTheme.ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar">
<item name="android:background">@color/my_green</item>
<item name="background">@color/my_green</item>
<item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
<item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
<item name="colorControlNormal">@color/white</item>
</style>
<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
<style name="MyTheme.DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="spinBars">true</item>
<item name="color">@color/white</item>
</style>
<style name="MyTheme.OverFlow" parent="Widget.AppCompat.ActionButton.Overflow">
<item name="android:tint">@color/white</item>
</style>
</resources>