gpt4 book ai didi

android - ActionBarSherlock mirrod 属性——什么时候使用 "android:"前缀?

转载 作者:行者123 更新时间:2023-11-30 03:51:01 24 4
gpt4 key购买 nike

在设计 ActionBarSherlock 样式时,我想知道什么时候必须使用前缀属性,什么时候使用非前缀属性,以及什么时候两者都使用。例如:

<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>

我在 ActionBarSherlock website 上找到了这个解释:

Mirrored Attributes

Due to limitations in Android's theming system any theme customizations must be declared in two attributes. The normal android-prefixed attributes apply the theme to the native action bar and the unprefixed attributes are for the custom implementation. Since both theming APIs are exactly the same you need only reference your customizations twice rather than having to implement them twice.

The easiest way to convey exactly what this entails is with an example. The following is the full theme from the “Styled” example mentioned above:

<style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
<item name="background">@drawable/bg_striped</item>
<item name="android:background">@drawable/bg_striped</item>

<item name="backgroundSplit">@drawable/bg_striped_split</item>
<item name="android:backgroundSplit">@drawable/bg_striped_split</item>
</style>

我认为,非前缀属性只需要用于 API 级别 11 之前不存在的属性。但是为什么会有 android:background 以及 background 示例中的属性? android:background 自 API 级别 1 以来就存在。有人可以提供有关这些镜像属性的更多详细信息吗?

最佳答案

根据我对您引用的 ActionBarSherlock 文档的理解,当 ActionBarSherlock 使用 native 版本的 ActionBar (也就是说,在运行 Android 3+ 的设备上,如果它可用),并且当 ActionBarSherlock 实际上必须使用它自己的 ActionBar 组件实现时,在旧版本上使用无前缀版本。

简而言之,Android 原生功能使用 android 前缀的属性,自定义组件使用非前缀版本。

无论如何,在为 ActionBarSherlock 对象设置主题时,您似乎总是必须同时设置前缀和非前缀属性。

关于android - ActionBarSherlock mirrod 属性——什么时候使用 "android:"前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com