todas - ¿Qué pasó con windowContentOverlay en Android API 18?
descargar android 4.1 jelly bean para tablet (2)
Esto es oficialmente un error y se solucionará para la próxima versión de la plataforma: https://code.google.com/p/android/issues/detail?id=58280
ACTUALIZACIÓN: Esto parece estar solucionado en el nivel de API 19
Después de actualizar mi teléfono a Android 4.3 noté que la sombra debajo de la barra de acción ya no se muestra. En mi aplicación tengo una sombra personalizada usando windowContentOverlay
:
<item name="android:windowContentOverlay">@drawable/shadows_bottom</item>
Siempre se ha estado mostrando, pero ahora se ha ido en API 18. Eliminar esa línea del tema no cambia nada. mientras que en otras versiones de API muestra una ligera sombra predeterminada.
¿Alguien más ha notado ese problema?
Pude onCreate
este error de plataforma agregando el siguiente método a mi FragmentActivity
base y llamándolo onCreate
después de que se haya inflado el diseño:
/**
* Set the window content overlay on device''s that don''t respect the theme
* attribute.
*/
private void setWindowContentOverlayCompat() {
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN_MR2) {
// Get the content view
View contentView = findViewById(android.R.id.content);
// Make sure it''s a valid instance of a FrameLayout
if (contentView instanceof FrameLayout) {
TypedValue tv = new TypedValue();
// Get the windowContentOverlay value of the current theme
if (getTheme().resolveAttribute(
android.R.attr.windowContentOverlay, tv, true)) {
// If it''s a valid resource, set it as the foreground drawable
// for the content view
if (tv.resourceId != 0) {
((FrameLayout) contentView).setForeground(
getResources().getDrawable(tv.resourceId));
}
}
}
}
}
Esto funciona bien porque no tiene que cambiar sus temas o agregar dinámicamente vistas a sus diseños. Debería ser compatible con versiones posteriores y puede eliminarse fácilmente una vez que se haya solucionado este error.