Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿El tema de AppCompat DayNight no funciona en Android 6.0?

Estoy utilizando el nuevo Theme.AppCompat.DayNight añadido en Android Support Library 23.2

En Android 5.1 funciona bien.

En Android 6.0, la actividad parece utilizar el tema de luz, pero el diálogo parece usar un tema oscuro.

Mi clase de aplicación:

 public class MyApplication extends Application { static { AppCompatDelegate.setDefaultNightMode( AppCompatDelegate.MODE_NIGHT_YES); } } 

Mis estilos.xml

 <style name="AppTheme" parent="Theme.AppCompat.DayNight"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="Dialog.Alert" parent="Theme.AppCompat.DayNight.Dialog.Alert"/> 

Mi código para mostrar un diálogo:

 new AlertDialog.Builder(mContext, R.style.Dialog_Alert) .setTitle("Title") .setMessage("Message") .show(); 

  • Cómo hacer que mi ancho de TextView mitad de su padre?
  • Leer de forma programada Estado de depuración en Manifest
  • ¿Dónde están los esquemas de archivos XML en un proyecto de Android?
  • ¿Cómo puedo configurar el estado seleccionado de un botón de imagen con xml
  • Android xml layer-list no se muestra correctamente en algunos dispositivos
  • Cómo establecer recurso de imagen a ImageView utilizando DataBinding
  • Cambiar imagen
  • Barra de herramientas y Fragmento
  • 4 Solutions collect form web for “¿El tema de AppCompat DayNight no funciona en Android 6.0?”

    Google tiene arreglarlo en soporte 23.2.1

    Respuesta antigua:

    En Android 6.0, el ajuste del modo nocturno del sistema, defalut, es UiModeManager.MODE_NIGHT_NO , cambiará Resources.Configuration.uiMode antes de que onCreate se llame. Sin embargo, la biblioteca de soporte de aplicar su configuración de modo de noche en onCreate en AppCompatActivity , es demasiado tarde, creo que es por eso que no funciona en 6.0.

    Así que si podemos Anular getResources() en AppCompatActivity y cambiar uiMode .

    Respuesta antigua:

    Aquí hay código para arreglar no funciona en Android 6.0

     public class Application extends android.app.Application { static { AppCompatDelegate.setDefaultNightMode( AppCompatDelegate.MODE_NIGHT_); } @Override public void onCreate() { super.onCreate(); // add this code for 6.0 // DO NOT DO THIS. It will trigger a system wide night mode. // This is the old answer. Just update appcompat. // UiModeManager uiManager = (UiModeManager) getSystemService(Context.UI_MODE_SERVICE); // uiManager.setNightMode(UiModeManager.MODE_NIGHT_); } } 

    Nota: si su aplicación no tiene permiso de ubicación, su aplicación no tendrá el mismo resultado de cálculo del sistema. Significa que es posible que la biblioteca de soporte piensa que es de noche ahora cuando el sistema no, esto hará que algunos de su interfaz de usuario lucen algo oscuro.

    La mejor manera es esperar a que Google lo corrija.

    Agregue getDelegate().applyDayNight(); Después de setDefaultNightMode .

    Sólo tiene que añadir esto en sus valores-v21

     <style name="Theme.AppCompat.DayNight"> 

    Trabajo para mí hecho.

    Este problema se informó en https://code.google.com/p/android/issues/detail?id=201910

    Pero después de la liberación de la Biblioteca de Soporte de Android, revisión 23.2.1 (marzo de 2016). Este asunto ha sido resuelto.

    Solucionado un problema de compatibilidad con Night Mode y API nivel 23

    Actualizar la biblioteca de asistencia a Android Support Library to 23.2.1

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.