如何更改对话框消息的样式?

时间:2016-10-09 08:09:05

标签: android

我的代码:

backDialog = new AlertDialog.Builder(getContext(), R.style.dialogAlertTheme)
            .setTitle(R.string.hint)
            .setMessage(R.string.clear_all_cache)
            .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    clearCache();
                }
            }).setNegativeButton(R.string.cancel, null).create();
backDialog.show();

dialogAlertTheme:

<style name="dialogAlertTheme" parent="@style/Theme.AppCompat.Light.Dialog.MinWidth">
    <item name="buttonBarPositiveButtonStyle">@style/customButtonBarPositiveButtonStyle</item>
    <item name="buttonBarNegativeButtonStyle">@style/customButtonBarNegativeButtonStyle</item>
    <item name="android:windowTitleStyle">@style/customButtonBarWindowTitleStyle</item>
</style>

我可以通过更改“android:windowTitleStyle”来改变标题的样式。

我可以通过更改“buttonBarPositiveButtonStyle”和“buttonBarNegativeButtonStyle”来更改按钮的颜色。

但我怎样才能改变消息的风格? 我试了很多,比如“android:textAppearance”,“android:dialogPreferenceStyle”等等,不行。

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您可以通过更改AppCompat主题中使用的标准颜色并将其应用于对话框(在构造函数中提供主题)来根据需要更改颜色

<style name="MainTheme.Dialog" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

答案 1 :(得分:0)

您可以尝试 textAppearanceMedium

我指的是源代码, alert_dialog.xml中有以下段

<LinearLayout android:id="@+id/contentPanel"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical">
    <ScrollView android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="2dip"
        android:paddingBottom="12dip"
        android:paddingStart="14dip"
        android:paddingEnd="10dip"
        android:overScrollMode="ifContentScrolls">
        <TextView android:id="@+id/message"
            style="?android:attr/textAppearanceMedium"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dip" />
    </ScrollView>
</LinearLayout>

然后你可以找到哪个id是消息使用样式的TextView 的机器人:?ATTR / textAppearanceMedium

我希望这对你有用。