windowActionBar和android:windowActionBar之间的区别是什么

时间:2016-04-01 11:57:07

标签: android android-actionbar android-toolbar

当我在这里设置风格时:

<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>

动作栏仍然在这里。

有什么区别?

2 个答案:

答案 0 :(得分:14)

windowActionBar是AppCompat库中提供的属性,其中在Material主题中提供了android:windowActionBar

当你设置下面的代码时,操作栏就会消失,只是因为你正在使用AppCompat库并引用这个库本身提供的属性:

<item name="windowActionBar">false</item>

在其他方面,它与colorPrimaryandroid:colorPrimary属性以及所有其他类似属性相同。

例如:

我们使用了Material主题并引用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>

但我们现在正在使用仅具有colorPrimary属性的AppCompat库,以提供与较低版本的兼容性。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>

        ...
        ...

</style>

答案 1 :(得分:8)

android:windowActionBar表示棒棒糖及以上的属性。其中windowActionBar表示所有版本,并从支持库中检索。