当我在这里设置样式时:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
动作条就会消失。
但是,当我将它设置为:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowActionBar">false</item>
<item name=“android:windowNoTitle">true</item>
</style>
动作条还在这里。
有什么区别?
最佳答案
windowActionBar
是appcompat库中提供的属性,其中asandroid:windowActionBar
在material theme中提供。
当您设置以下代码时,操作栏将消失,这仅仅是因为您正在使用appcompat库并引用该库本身提供的属性:
<item name="windowActionBar">false</item>
在另一点上,它与
colorPrimary
和android:colorPrimary
属性以及所有其他类似属性相同。例如:
我们使用材料主题,并将
android:colorPrimary
属性引用如下:<style name="AppTheme" parent="android:Theme.Material.Light">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primary_dark</item>
....
....
</style>
但我们现在使用的appcompat库只有
colorPrimary
属性,以提供与较低版本的兼容性。<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
...
...
</style>