Android v21 Theme.Appcompat颜色重音被忽略,对话框上没有填充

我从Android 5 SDK使用ActionBarActivity ,这里是我的v21的theme.xml

<style name="AppTheme_Light" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:colorPrimary">@color/abc1</item> <item name="android:colorPrimaryDark">@color/abc2</item> <item name="android:colorAccent">@color/abc3</item> </style> 

但是颜色被忽略,并且被默认的蓝绿色代替,所有的对话框都没有填充。

问题http://i62.tinypic.com/21cebcz.png

此外,在自定义烤面包等其他地方填充也被忽略,问题只发生在棒棒糖设备。

编辑:

填充问题是由于fitsSystemWindow和我得到它固定使用
这个问题。 。

但重音颜色问题仍然存在,它不只是影响对话框,而是整个应用程序。

关于口音的颜色。 您正在使用AppCompat主题,因此您应该从主题中的命名空间中删除Android。

 <style name="AppTheme_Light" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/abc1</item> <item name="colorPrimaryDark">@color/abc2</item> <item name="colorAccent">@color/abc3</item> </style> 

关于对话框。 AppCompat不支持它(据我所知)。
您可以尝试在values-v21文件夹中使用此样式:

 <style name="Theme" parent="FrameworkRoot.Theme"> <item name="android:alertDialogTheme">@style/Theme.AlertDialog</item> </style> <style name="Theme.AlertDialog" parent="android:Theme.Material.Light.Dialog.Alert"> <item name="android:colorPrimary">@color/demo_primary_color</item> <item name="android:colorPrimaryDark">@color/demo_colorPrimaryDark</item> <item name="android:colorAccent">@color/theme_accent_1</item> </style> 

UPDATE 23/04/2015:支持图书馆V.22.1

新的support library v22.1使用对话框。 您可以使用android.support.v7.app.AlertDialog或新的AppCompatDialog 。

例如:

 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); 

更新

我已经成功应用了appCompat对话框主题的颜色,可能对某人有所帮助:

值/ style.xml

 <style name="Theme.MyApp" parent="Theme.AppCompat.Light"> ... /* for android 4 - 4.4, we not define alert dialogs style */ </style> 

值-V21 / style.xml

 <style name="Theme.MyApp" parent="Theme.AppCompat.Light"> ... /* define alert dialog style for android 5 */ <item name="android:alertDialogTheme">@style/Theme.AlertDialog</item> </style> 
  <style name="Theme.AlertDialog" parent="Theme.AppCompat.Light.Dialog"> <!--app abar color in Activties Task manager --> <item name="colorPrimary">@color/my_color</item> <!--copy/paste colors --> <item name="colorAccent">@color/my_color</item> <!--status bar color --> <item name="colorPrimaryDark">@color/my_color</item> </style> 

AppCompat的当前版本不会将彩色应用于AlertDialogs。

尝试使用https://github.com/afollestad/material-dialogs ,它很好用!