Me he encontrado con un problema extraño con las actividades que utilizan el tema Holo Dialog (@android:style/Theme.Holo.Dialog
) en Ice Cream Sandwich.¿Qué pasa con el tema ICS Holo Dialog?
Parece que ignoran sus diseños y llenan toda la pantalla en lugar del ancho y el alto de diseño de sus diseños XML. Los mismos diseños funcionan como esperaba en Honeycomb, pero no en Ice Cream Sandwich.
Ejemplo:
La forma correcta (Honeycomb)
La forma incorrecta (Ice Cream Sandwich)
Ambos dispositivos se están ejecutando la misma versión de la aplicación, y están usando exactamente el mismo diseño. Aquí está el diseño en cuestión:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="940dp"
android:layout_height="600dp"
android:layout_margin="10dp" >
<GridView
android:id="@+id/gridView1"
android:layout_width="940dp"
android:layout_height="600dp"
android:horizontalSpacing="10dp"
android:numColumns="3"
android:smoothScrollbar="true"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" >
</GridView>
</LinearLayout>
¿Alguna idea de cómo se puede resolver esto? Un problema similar ocurre en mi Galaxy Nexus basado en ICS, que ignora por completo la etiqueta match_parent
para alto y ancho. ¿El tema del diálogo está roto en ICS?
Actualización:
que he hecho algunas pruebas más, y parece que 894dp de ancho o menos producirá el aspecto "correcta", pero si fijo el ancho de 895dp o más, es ll será el aspecto incorrecto. El emulador está actuando de la misma manera. Esto es extremadamente raro ...
Eso parece extraño. Este es un plano en la oscuridad, pero a veces experimentaré fallas gráficas extrañas en mi aplicación después de cambiar el objetivo de compilación. No tengo idea de por qué, pero limpiar el proyecto siempre los arreglará. Como dije, dispararon en la oscuridad, pero puede ser así de simple. – adneal
Gracias, lo intenté de nuevo, pero no pareció tener ningún efecto. Acabo de actualizar mi pregunta nuevamente, parece que está sucediendo entre 894 y 895 dp de ancho. –
¿Las capturas de pantalla se toman con dos dispositivos separados? Su publicación asume que este comportamiento siempre funciona correctamente en HoneyComb pero no en ICS, pero ¿es posible que el problema que está teniendo dependa completamente del tamaño de la pantalla? De lo contrario, podría considerar crear dos AVD (uno que ejecute 3.0 y otro que ejecute 4.0) con el mismo tamaño de pantalla y probarlos con los dos para determinar si el problema depende realmente del número de versión del SDK de Android. –