没有名称空间的项目在样式中意味着什么

时间:2013-08-06 13:36:48

标签: android namespaces

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

<style name="My_Style" parent="style/Theme.Sherlock.Light">
    <item name="android:actionBarStyle">@style/ActionBar</item>
    <item name="android:homeAsUpIndicator">@drawable/ic_action_back</item>
    <item name="homeAsUpIndicator">@drawable/ic_action_back</item>
</style>

'homeAsUpIndicator'和'android:homeAsUpIndicator'或'background'和'android:background'有什么区别?

我想知道我是否需要同时设置它们?我刚刚找到这些示例,但是当您不使用'android'命名空间时无法找到您正在设置的内容...

1 个答案:

答案 0 :(得分:1)

  

由于Android主题系统的限制任何主题   必须在两个属性中声明自定义。 正常   android-prefixed属性将主题应用于本机操作栏   并且未加前缀的属性用于自定义实现。从那以后   两个主题API完全相同,您只需参考您的   自定义两次,而不是必须两次实现。

最简单的方法就是通过一个例子准确地传达这一点。以下是上面提到的“Styled”示例的完整主题:

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

详细了解ActionbarSherlock's Mirrored Attributes