studio - material design library android
Android v21 Theme.Appcompat color acento se ignora, no hay relleno en los cuadros de diálogo (3)
La versión actual de AppCompat no aplica colorización a AlertDialogs.
Trate de usar https://github.com/afollestad/material-dialogs , ¡funciona genial!
Estoy usando ActionBarActivity del SDK de Android 5 y aquí está mi theme.xml para v21
<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>
Pero los colores se ignoran y se reemplazan por un color verde azulado predeterminado y todos los cuadros de diálogo aparecen sin relleno.
Problema http://i62.tinypic.com/21cebcz.png
Además, el relleno también se ignora en otros lugares, como las tostadas personalizadas, el problema solo ocurre en los dispositivos de paletas.
Editar:
El problema de relleno se debió a fitsSystemWindow
y lo solucioné usando
esta pregunta. .
Pero el problema del color del acento sigue ahí, y no solo afecta a los diálogos, sino a toda la aplicación.
Sobre el color del acento. Está utilizando un tema de AppCompat, por lo que debe eliminar Android del espacio de nombres dentro de su tema.
<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>
Sobre el diálogo. AppCompat no lo admite (como sé).
Puedes intentar usar este estilo en tu carpeta de valores-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>
ACTUALIZACIÓN 23/04/2015: BIBLIOTECA DE APOYO V.22.1
La nueva support library v22.1
funciona con el diálogo. Puede usar un android.support.v7.app.AlertDialog o el nuevo AppCompatDialog .
Por ejemplo:
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();
Y usa un estilo como este:
<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>
De lo contrario puedes definir en tu tema actual:
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- your style -->
<item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item>
</style>
y luego en su código:
import android.support.v7.app.AlertDialog
AlertDialog.Builder builder =
new AlertDialog.Builder(this);
actualizar
He aplicado con éxito colores para los temas de los diálogos de appCompat, tal vez sea útil para alguien:
valores / estilo.xml
<style name="Theme.MyApp" parent="Theme.AppCompat.Light">
...
/* for android 4 - 4.4, we not define alert dialogs style */
</style>
values-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>