问题描述
- 自定义的android工具栏
-
我想创建一个新的主题,还有自定义工具栏:<resources> <style name="Theme.Shappy.Red" parent="Theme.Sherlock.Light"> <item name="android:actionBarStyle">@style/ActionBar.Shappy.Red</item> ... ... [some_other_customizations] </style> <!-- Action bar --> <style name="ActionBar.Shappy.Red" parent="@style/Widget.Sherlock.Light.ActionBar.Solid"> <item name="android:background">#ffb70000</item> <item name="android:titleTextStyle">@style/ActionBar.Title.Shappy.Red</item> </style> <!-- Action bar text --> <style name="ActionBar.Title.Shappy.Red" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Title"> <item name="android:textColor">#ddffffff</item> </style> </resources>
正如上面所示,我使用Sherlock。这段代码在 API 14上可以正常运行,但是在API 10上不行。我看到 Holo light像工具栏。我觉得这段代码是正确的,因为
[some_other_customizations]
能正确应用。 大家的意见呢?
解决方案
我觉得代码是没问题,但是既然你提到 holo.ligth 这个属性和 API的级别这两点,其实答案已经出来了,holo.light这个是4.0才有的属性(可能3.0已经有了,没接触过3.0),API 10是对应android 2.3的,所以代码在API 10上不能运行也就不奇怪了,正如同在4.0没有titlebar,取而代之的是actionbar一样。
解决方案二:
<item name="android:actionBarStyle">@style/ActionBar.Shappy.Red</item>
<item name="actionBarStyle">@style/ActionBar.Shappy.Red</item>
下面方法重写了ABS的格式。所以你设计的格式要在低于API 13上运行。
<style name="Theme.Shappy.Red" parent="Theme.Sherlock.Light">
<item name="android:actionBarStyle">@style/ActionBar.Shappy.Red</item>
<item name="actionBarStyle">@style/ActionBar.Shappy.Red</item>
</style>
<!-- Action bar -->
<style name="ActionBar.Shappy.Red" parent="@style/Widget.Sherlock.Light.ActionBar.Solid">
<item name="android:background">#ffb70000</item>
<item name="background">#ffb70000</item>
<item name="android:titleTextStyle">@style/ActionBar.Title.Shappy.Red</item>
<item name="titleTextStyle">@style/ActionBar.Title.Shappy.Red</item>
</style>
<!-- Action bar text -->
<style name="ActionBar.Title.Shappy.Red" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Title">
<item name="android:textColor">#ddffffff</item>
<item name="textColor">#ddffffff</item>
</style>
时间: 2024-10-03 15:04:12