gpt4 book ai didi

Android:通过样式在alertdialog中消息字体大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:53:07 26 4
gpt4 key购买 nike

我正在尝试通过样式更改警报对话框中消息的字体大小,但我无法使其工作。有很多描述如何执行此操作的答案,但我发现几乎所有答案都是以编程方式完成的。我想在样式中执行一次,而不是在每个新的警报对话框中执行一次。

到目前为止我做了什么:

\AndroidSDK\platforms\android-23\data\res\layout\alert_dialog.xml 中,我看到显示消息的 TextView:

<TextView android:id="@+id/message"
style="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dip" />

\AndroidSDK\platforms\android-23\data\res\values\themes.xml 我看到 textAppearanceMedium 属性的值是 @style/TextAppearance.Medium.

我创建了以下样式,其父样式为 TextAppearance.AppCompat.Medium。然后将此样式应用于 AlertDialog 样式的 android:textAppearanceMedium 属性,如下所示:

<style name="Theme.My" parent="Theme.AppCompat.Light.NoActionBar.FullScreen">
<item name="android:alertDialogTheme">@style/Theme.My.AlertDialog</item>
</style>

<style name="Theme.My.AlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:textAppearanceMedium">@style/MyTextAppearanceMedium</item>
</style>

<style name="MyTextAppearanceMedium" parent="TextAppearance.AppCompat.Medium">
<item name="android:textSize">24sp</item>
</style>

...但字体大小不会改变。怎么了?

我正在使用 AppCompat 支持库,最小 SDK 16,目标 SDK 23。

谢谢。

最佳答案

如果我们浏览 android 源代码,我们会发现 Theme.AppCompat.Light.Dialog.Alert 主题继承了 alertDialogStyle:

<item name="alertDialogStyle">@style/AlertDialog.AppCompat.Light</item>

通过 AlertDialog.AppCompat.Light 样式我们会发现它使用默认布局:

<item name="android:layout">@layout/abc_alert_dialog_material</item>

进一步调查资源,特别是布局 @layout/abc_alert_dialog_material,我们将看到 TextView 的 id android:id="@android:id/message"(这是消息 TextView)使用样式 TextAppearance.AppCompat.Subhead

<TextView
android:id="@android:id/message"
style="@style/TextAppearance.AppCompat.Subhead"
... />

覆盖应用程序的 values/styles.xml 文件中的那些样式将改变警告对话框中消息的外观:

<style name="TextAppearance.AppCompat.Subhead" parent="Base.TextAppearance.AppCompat.Subhead">
<item name="android:textSize">24sp</item>
<item name="android:textColor">#ff0000</item> <!-- we can change other parameters, e.g. textColor -->
</style>

关于Android:通过样式在alertdialog中消息字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35179537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com