使用ABS覆盖标准样式

时间:2013-04-08 14:20:14

标签: android android-layout

在我的AndroidManifest文件中,我没有声明主题。 结果是: 黑色背景和ABS与蓝色背景,列表项目的状态是蓝色。 那很好。

现在我想将indeterminateProgressStyle设置为Widget.ProgressBar.Small

因此我必须声明我自己的风格:

<style name="Custom" parent="??">
    <item name="android:actionBarStyle">@style/ActionBarIPS</item>
</style>

我应该在父参数中输入什么? 我想要所有的风格行为像以前一样(黑色背景蓝色ABS和蓝色列表项状态等,因为它是在AndroidManifest中声明主题属性时定义的。

编辑: 我还需要知道这个父母的价值:

<style name="ActionBarIPS" parent="ABS with blue background">
    <item name="android:indeterminateProgressStyle">@style/IndeterminateProgress</item>
</style>

清单中没有样式的版本: the version without a style in manifest

具有自定义样式和parent = Theme.Sherlock的版本 the version with custom style and parent=Theme.Sherlock

我希望第一个版本的不确定微调器设置为“小”

2 个答案:

答案 0 :(得分:2)

这取决于您当前的风格,可以是Theme.SherlockTheme.Sherlock.LightTheme.Sherlock.ForceOverflow等,例如:

<style name="Custom" parent="Theme.Sherlock or Theme.Sherlock.Light">
    <item name="android:actionBarStyle">@style/ActionBarIPS</item>
    <item name="android:indeterminateProgressStyle">@style/IndeterminateProgress</item>
</style>

注意: 您必须在style.xml目录的values中声明此样式。

<强>编辑:

您使用蓝色ActionBar而不使用ABS,因为您使用的是三星TouchWiz默认用户界面。

如果您在非三星设备中安装APK,则不会看到此蓝色操作栏,但如果您被迫使用蓝色操作栏,请将以下图像放入drawable目录中,通过以下方式将其设置为操作栏背景:

 getSupportActionBar().setBackgroundDrawable(getResources()
            .getDrawable(R.drawable.TouchWiz_ActionBar_Bg));

enter image description here

答案 1 :(得分:0)

尝试使用“Theme.Sherlock”作为父级。我还建议添加:

<item name="actionBarStyle">@style/ActionBarIPS</item>