31

Android 主题 Theme.Holo.Dialog 上线条的默认颜色为蓝色。我想知道如何将其更改为任何其他颜色。在我的情况下是橙色的。

我可以更改文本或背景等。用自定义 style.xml 覆盖主题

   <style name="Theme.MyTheme" parent="@android:style/Theme.Holo.Dialog" >
        <item name="android:textColor">@color/coloroscuro</item>
        <item name="android:textColorHint">@color/coloroscuro</item>
   </style>

但我不知道哪个属性管理线条的颜色。

我的意思是主题默认具有的蓝线,就像其他问题中显示的那样:

如何为 Android Holo Theme 样式的对话框按钮

4

3 回答 3

24

只需为您挖掘源代码 - 不幸的是,对话框布局中的 Divider 行是一个具有硬编码颜色背景的视图,不引用任何主题:

<View android:id="@+id/titleDividerTop"
  android:layout_width="match_parent"
  android:layout_height="2dip"
  android:visibility="gone"
  android:background="@android:color/holo_blue_light" />

因此,如果您想更改颜色,您必须布局自己的自定义对话框。为了使它更容易,从 android 源代码库中复制并根据您的需要对其进行自定义不会有什么坏处,但您可能会得到比您需要的更多的东西。

于 2012-04-07T20:38:39.490 回答
18

有一个库可以完全满足您的需求 - Holo 主题中对话框的简单样式:

https://github.com/inmite/android-styled-dialogs

于 2013-06-12T07:45:48.197 回答
2

一个技巧是使用没有标题栏的对话框,因此android不画线,然后在对话框的布局xml文件中自己添加标题和线!例如:

<style name="myDialogStyle" parent="android:style/Theme.Holo.Dialog">
    <item name="android:windowNoTitle">true</item>
</style>

在清单使用中:

    <activity
        android:name=".Activity.Mydialog"
        android:theme="@style/myDialogStyle" >
    </activity>

并在您的 Mydialog 布局中定义标题并使用您想要的颜色和样式为自己划线!

干杯!

于 2015-06-28T05:20:38.997 回答