Outre le dossier du res/layout
général j'ai un dossier res/layout-v3
pour la compatibilité descendante avec Android 1.5, ce qui a des problèmes avec certains RelativeLayout
mises en page.Android 2.1 bug: utilisations res/layout-v3 au lieu de résolution/mise en page
Fonctionne parfaitement avec tous les téléphones et versions d'émulation testés, donc . Sauf 2.1 (émulateur et Nexus One). Ils choisissent d'afficher la mise en page Android 1.5 (res/layout-v3
) au lieu de la valeur par défaut res/ layout
.
Quelqu'un d'autre peut-il confirmer cela? Est-ce un bug du système d'exploitation Android? Si oui, où est le meilleur endroit pour soumettre le rapport de bogue?
MISE À JOUR:
Après avoir lu sur https://developer.android.com/guide/practices/screens_support.html#qualifiers à nouveau (merci Mark pour l'indice), en particulier cette partie
Les ressources qui devraient être utilisées que sur une API spécifique Niveau ou plus. Par exemple, si votre application est conçue pour fonctionner à la fois sur Android 1.5 (API Niveau 3) et Android 1.6 (API Niveau 4 et supérieur), vous pouvez utiliser le qualificatif -v4 pour marquer les ressources qui doivent être exclues lorsque votre application s'exécute sur Android 1.5 (niveau API 3).
je changé ma mise en page afin d'avoir
- res/layout-v3 (pour Android 1.5 seulement -> ce fut une fausse supposition que je fait)
- res/mise en page (pour quoi que ce soit d'autre)
à ma nouvelle configuration d'avoir:
- res/laïcs out-v4 (pour Android 1.6 et versions ultérieures)
- res/layout (pour toute autre chose -> dans ce cas, ce serait Android 1.5 seulement)
Si je comprends bien le droit de documentation ci-dessus et si mes hypothèses les parenthèses sont correctes cette fois cela devrait fonctionner maintenant. Cependant, le résultat est le suivant:
- Android 1.5 utilise res/layout -> OK
- Android 1.6 utilise res/layout-v4 -> OK
- Android 2.0 utilise res/layout - >pAS OK
- Android 2.1 est à l'aide res/layout-v4 -> OK
Alors pourquoi est Android 2.0 (sur les deux Emulator et Motorola Milestone) ne pas choisir le dossier de ressources de mise en page à droite?
Je l'ai testé puis à nouveau avec 2.0.1 et il semble fonctionner là. Donc, ça semble être un bug dans 2.0 qui a été corrigé dans 2.0.1
Mais maintenant la chose la plus étrange: pour le faire fonctionner sur 2.0 j'ai copié le dossier res/layout-v4 dans res/layout-v5 forcer Android 2.0 en utilisant cette ressource de mise en page. N'a pas fonctionné. Mais ensuite j'ai essayé de le copier sur res/layout-v6 (qui est censé être Android 2.0.1) et voilà tout d'un coup ça marche avec 2.0. Très étrange! Mais j'espère que cette solution aidera quelques autres personnes.
Sur le dernier point, http://b.android.com est le suiveur de problème officiel. Si vous pouvez attacher ou pointer vers un ensemble de code source reproduisant le problème, cela accélérera l'analyse. – CommonsWare