Mi sono imbattuto in un problema un po 'strano con le attività che utilizzano il tema Holo Dialog (@android:style/Theme.Holo.Dialog
) in Ice Cream Sandwich.Cosa c'è che non va nel tema Holo Dialog di ICS?
Sembra che ignorino i loro layout e riempiano l'intero schermo anziché la larghezza e l'altezza del layout dai loro layout XML. Gli stessi layout funzionano come previsto in Honeycomb, ma non su Ice Cream Sandwich.
Esempio:
Il modo corretto (Honeycomb)
Il modo errato (Ice Cream Sandwich)
Entrambi i dispositivi sono in esecuzione la stessa versione esatta della domanda, e stanno usando lo stesso identico layout. Ecco il layout in questione:
<?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>
Qualche idea su come questo può essere risolto? Un problema simile si verifica sul Galaxy Nexus basato su ICS, che ignora completamente il tag match_parent
per l'altezza e la larghezza. Il tema del dialogo è rotto in ICS?
Aggiornamento:
ho fatto un po 'di test, e sembra che 894dp di larghezza o meno produrrà l'aspetto "corretto", ma se ho impostato la larghezza a 895dp o più, è' Sarà l'aspetto sbagliato. L'emulatore agisce allo stesso modo. Ciò è estremamente strano ...
Sembra strano. Questo è uno sparo al buio, ma a volte proverò strani problemi grafici nella mia app dopo aver cambiato il Build Target. Non ho idea del perché, ma la pulizia del progetto li risolverà sempre. Come ho detto, sparato nell'oscurità, ma potrebbe essere così semplice. – adneal
Grazie, ho appena provato di nuovo, ma non sembra avere alcun effetto. Ho appena aggiornato la mia domanda di nuovo - sembra che stia accadendo tra 894 e 895 dp di larghezza. –
Le schermate vengono scattate utilizzando due dispositivi separati? Il tuo post presuppone che questo comportamento funzioni sempre correttamente su HoneyComb ma non su ICS, ma è possibile che il problema riscontrato dipenda interamente dalle dimensioni dello schermo? In caso contrario, si potrebbe prendere in considerazione la creazione di due AVD (uno in esecuzione 3.0 e un altro in esecuzione 4.0) con le stesse dimensioni dello schermo e testarlo con i due per determinare se il problema dipende dal numero di versione dell'SDK di Android. –