材料devise不是样式警报对话框

我已经将appCompat材质devise添加到我的应用程序中,并且看起来警报对话框不使用我的主要,主要的深度或重音颜色。

这是我的基本风格:

<style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/apptheme_color</item> <item name="colorPrimaryDark">@color/apptheme_color_dark</item> <item name="colorAccent">@color/apptheme_color</item> <item name="android:textColorPrimary">@color/action_bar_gray</item> </style> 

根据我的理解,对话框的button文字也应该使用这些颜色。 我的理解是错的还是还有什么我需要做的?


解:

明显的答案让我走上了正轨。

 <style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/apptheme_color</item> <item name="colorPrimaryDark">@color/apptheme_color_dark</item> <item name="colorAccent">@color/apptheme_color</item> <item name="android:actionModeBackground">@color/apptheme_color_dark</item> <item name="android:textColorPrimary">@color/action_bar_gray</item> <item name="sdlDialogStyle">@style/DialogStyleLight</item> <item name="android:seekBarStyle">@style/SeekBarNavyTheme</item> </style> <style name="StyledDialog" parent="Theme.AppCompat.Light.Dialog"> <item name="colorPrimary">@color/apptheme_color</item> <item name="colorPrimaryDark">@color/apptheme_color_dark</item> <item name="colorAccent">@color/apptheme_color</item> </style> 

使用新的AppCompat v22.1您可以使用新的android.support.v7.app.AlertDialog 。

只需使用这样的代码:

 import android.support.v7.app.AlertDialog AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle); builder.setTitle("Dialog"); builder.setMessage("Lorem ipsum dolor ...."); builder.setPositiveButton("OK", null); builder.setNegativeButton("Cancel", null); builder.show(); 

并使用这样的风格:

 <style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="colorAccent">#FFCC00</item> <item name="android:textColorPrimary">#FFFFFF</item> <item name="android:background">#5fa3d0</item> </style> 

否则,你可以定义你当前的主题:

 <style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- your style --> <item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item> </style> 

然后在你的代码中:

  import android.support.v7.app.AlertDialog AlertDialog.Builder builder = new AlertDialog.Builder(this); 

这里的Kitkat AlertDialog: 在这里输入图像描述

当初始化对话框生成器时,传递第二个参数作为主题。 它会自动显示API级别21的材料devise。

 AlertDialog.Builder builder = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_DARK); 

要么,

 AlertDialog.Builder builder = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT); 

AppCompat不会这样做的对话框(至less还没有)

编辑:它现在。 确保使用android.support.v7.app.AlertDialog

你可以考虑这个项目: https : //github.com/fengdai/AlertDialogPro

它可以为您提供与棒棒糖几乎相同的材质主题提示对话框。 兼容Android 2.1。

你可以使用

材料devise库

材料devise图书馆的漂亮的警报对话框 ,button,和其他东西,如小吃店。 目前它已经很发达。

指南,代码,示例 – https://github.com/navasmdc/MaterialDesignLibrary

指导如何将库添加到Android Studio 1.0 – 如何将材料devise库导入到Android Studio?

快乐编码;)

试试这个库:

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

它基于DialogFragments而不是AlertDialogs (如@afollestad中的)。 主要优点:对话框在旋转和callback仍然工作后不会消失。

出于某种原因,android:textColor只能更新标题颜色。 您可以使用a更改消息文本的颜色

 SpannableString.AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.MyDialogTheme)); AlertDialog dialog = builder.create(); Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers"); wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); dialog.setMessage(wordtoSpan); dialog.show();