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

zzh*_*838 6 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>
Run Code Online (Sandbox Code Playgroud)

动作栏将消失.

但是,当我把它设置为:

<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>
Run Code Online (Sandbox Code Playgroud)

动作栏仍然在这里.

有什么不同 ?

Par*_*ani 14

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

设置下面的代码后,操作栏就会消失,因为您正在使用AppCompat库并引用此库本身提供的属性:

<item name="windowActionBar">false</item>
Run Code Online (Sandbox Code Playgroud)

在另一点上,它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>
Run Code Online (Sandbox Code Playgroud)

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

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

        ...
        ...

</style>
Run Code Online (Sandbox Code Playgroud)


Rag*_*esh 8

android:windowActionBar表示棒棒糖及以上的财产.where windowActionBar表示所有版本并从支持库中检索.