我有一个名为“greenhighlight”的主题——这个主题是使用Android Action Bar Style Generator 生成的,并且继承自默认的 ActionBarSherlock 主题。除了将 ActionBar 底部的突出显示从蓝色更改为绿色外,该主题没有任何作用。
为了主题化我的所有活动,我只做:
<application android:theme="@style/Theme.greenhighlight"...
这对活动非常有效(注意 ActionBar 底部的绿色突出显示):
但是,我很难将我的对话主题化以匹配我的活动:
我的“greenhighlight_Dialog”主题定义为:
<style name="greenhighlight_Dialog" parent="@style/Theme.Sherlock.Dialog">
<item name="android:progressBarStyleHorizontal">
@style/greenhighlight_ProgressBar
</item>
</style>
我继承了默认的 Sherlock 对话框主题,并使用由我生成的“greenhighlight”主题定义的进度条样式覆盖进度条——您可以在上面的屏幕截图中看到进度条是正确的绿色阴影。
要使用主题,我正在运行以下代码:
ContextThemeWrapper ctw =
new ContextThemeWrapper(this, R.style.greenhighlight_Dialog);
AlertDialog.Builder builder = new AlertDialog.Builder(ctw);
...
ProgressDialog pd = new ProgressDialog(this, R.style.greenhighlight_Dialog);
...
我的问题是我不知道我需要覆盖哪些属性。我一直在按照Styles and Themes doco推荐的方式查看styles.xml和theme.xml(其中指出“R.style 参考,然而,没有很好的文档记录,也没有彻底描述样式”)——但是那里在 Theme.Dialog 上定义了很多样式,我不确定我需要覆盖哪些样式才能获得我想要的更改。
我需要覆盖哪些属性才能使我的对话框具有绿色标题文本、标题下方的绿色高亮条和选中列表项的绿色复选标记?