我对AlertDialog的自定义内容(消息部分)有问题。 正如您在我的代码中看到的,我能够为AlertDialog自定义标题和按钮。
我需要什么?
在AlertDialog中自定义消息。 我需要将字体系列更改为RobotoLight,将textSize更改为16sp,将行高更改为24 sp。
我不想做什么?
我不想将自定义布局应用于我将构建的每个alertdialog。我想在styles.xml中自定义AlertDialog,因此样式将自动应用于我将在代码中使用的每个AlertDialog(因为它有很多,一个带一个按钮,另一个有很多,其他有图标,其他没有图标等)。
我不想使用任何外部库。
我有什么?
我已经以正确的方式应用了我的主题,因为标题和按钮的自定义样式正在运行。请参阅下面的代码以参考我的更改。
<style name="Theme" parent="@android:style/Theme.DeviceDefault.Wallpaper.NoTitleBar">
[...]
<item name="android:alertDialogTheme">@style/AlertDialog</item>
</style>
我的styles.xml文件:
<style name="Theme" parent="@android:style/Theme.DeviceDefault">
<item name="android:alertDialogTheme">@style/AlertDialog</item>
</style>
然后是styles.xml的第二部分
<style name="AlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:windowTitleStyle">@style/AlertDialogTitle</item>
<!-- colorAccent : color of borderless buttons #51c1c0 -->
<item name="colorAccent">@color/highlight</item>
<item name="android:buttonStyle">@style/AlertDialogButton</item>
<item name="android:textColorPrimary">@color/secondary_text_material_light</item>
<item name="android:background">@color/window_background_light</item>
<item name="android:lineSpacingMultiplier">1.1</item>
</style>
<style name="AlertDialogTitle" parent="TextAppearance.AppCompat.Title">
<item name="android:fontFamily">@string/roboto_light_font</item>
<item name="android:textColor">@color/dialog_title_color</item>
<item name="android:textSize">20sp</item>
</style>
<style name="AlertDialogButton" parent="TextAppearance.AppCompat.Button">
<item name="android:fontFamily">@string/roboto_regular_font</item>
<item name="android:textSize">14sp</item>
</style>
我尝试了什么?
我已经阅读了大量的教程。在每个作者中,作者都能够向我们展示如何仅自定义标题和按钮。
我已经花费了大量的stackoverflow q&amp; a,不幸的是我无法找到答案。
我试图改变textAppearance,textAppearanceMedium,textSizes,textFamily,textEverything等,但我没有实现我的目标。 我试图为textAppearance创建样式,从TextAppearance.AppCompat.Medium,TextAppearance.Material,TextAppearance.Material.Medium等继承“class”,什么也没有。
有趣的是什么: http://blog.supenta.com/2014/07/02/how-to-style-alertdialogs-like-a-pro/
我使用了从上面教程中截取的代码并且它有效(AlertDialog的消息部分为黄色)。当我尝试将主题从Holo更改为Material时,它的结尾很糟糕。
请帮忙! :) 感谢。