windowActionBar和android:windowActionBar有什么区别?

10

当我在这里设置样式:

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

ActionBar仍然存在。

有什么区别?

2个回答

18

windowActionBar是在AppCompat库中提供的属性,而android:windowActionBar则是在Material主题中提供的。

当您使用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>

但现在我们仅使用AppCompat库中的colorPrimary属性,以便兼容低版本。

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

        ...
        ...

</style>

8

android:windowActionBar 是仅适用于 Lollipop 及以上版本的属性。而 windowActionBar 则适用于所有版本,并从支持库中获取。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接