jai*_*rik 11 android android-theme android-alertdialog
有没有办法可以更改Android应用程序中出现的所有警报对话框?我想要更改系统生成的对话框(例如,当您长按任何EditText时打开的"编辑文本"对话框).我想更改我的应用程序中所有对话框的标题字体颜色和大小.
有办法吗?
我试过设置android:alertDialogTheme我的主题.但似乎没有用.代码如下 -
<style name="Theme.DLight" parent="android:Theme.Light.NoTitleBar">
<item name="android:alertDialogTheme">@style/DialogStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)
和
<style name="DialogStyle" parent="android:Theme" >
<item name="android:windowBackground">@drawable/background_holo_light</item>
<item name="android:textColor">#014076</item>
</style>
Run Code Online (Sandbox Code Playgroud)
编辑
我没有从我的代码中调用对话框.它只是您长按任何EditText时出现的默认对话框.通常它包含键盘选项,如选择单词,全选,输入法等.
Dav*_*and 11
在对话框主题中,您需要修改的属性windowTitleStyle.在那里,引用标题的样式并为此标题定义文本外观.例如,要将标题显示为红色和粗体:
<style name="AppTheme" parent="@android:style/Theme.Holo">
...
<item name="alertDialogTheme">@style/AppTheme.AlertDialog</item>
</style>
<style name="DialogStyle" parent="@style/Theme.Holo.Dialog.Alert">
...
<item name="android:windowTitleStyle">@style/DialogWindowTitle_Custom</item>
</style>
<style name="DialogWindowTitle_Custom" parent="@style/DialogWindowTitle_Holo">
<item name="android:maxLines">1</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:textAppearance">@style/TextAppearance_DialogWindowTitle</item>
</style>
<style name="TextAppearance_DialogWindowTitle" parent="@android:style/TextAppearance.Holo.DialogWindowTitle">
<item name="android:textColor">@android:color/holo_red_light</item>
<item name="android:textStyle">bold</item>
</style>
Run Code Online (Sandbox Code Playgroud)
如果你想更多地设置你的AlertDialog,我写了一篇博文,详细介绍了这些步骤.
在 styles.xml 中:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
//All your other styles and add the one mntioned below.
<item name="alertDialogTheme">@style/AlertDialogStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在AlertDialog的样式中添加:
<style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/primary_text</item>
<item name="android:editTextColor">@color/primary_text</item>
<item name="android:background">@color/white</item>
<item name="android:windowTitleStyle">@style/TextAppearance.AppCompat.Title</item>
</style>
Run Code Online (Sandbox Code Playgroud)
添加windowTitleStyle很重要,因为它会给您的标题带来您需要的效果。
现在,只需在您想要的任何活动中的 AlertDialog 中使用此主题,如下所示:
AlertDialog.Builder dialog = new AlertDialog.Builder(this, R.style.AlertDialogStyle);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19884 次 |
| 最近记录: |