Android 2.1 bug: utilisations res / layout-v3 au lieu de res / mise en page
-
22-09-2019 - |
Question
En plus du dossier général res/layout
J'ai un res/layout-v3
dossier pour la rétrocompatibilité avec Android 1.5, ce qui a des problèmes
avec des mises en page RelativeLayout
.
Il fonctionne parfaitement avec tous les téléphones et les versions de l'émulateur testé afin
loin. À l'exception de 2.1 (émulateur et Nexus One). Ils choisissent d'afficher
la mise en page Android 1.5 (de res/layout-v3
) au lieu du res/
layout
par défaut.
Quelqu'un d'autre peut le confirmer? Est-ce un bug Android OS? 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 encore une fois de /practices/screens_support.html#qualifiers (merci Mark pour l'indice), en particulier cette partie
Les ressources qui devraient être utilisées que sur un API spécifique ou de niveau supérieur. Pour Par exemple, si votre demande est conçu pour fonctionner sur les deux applications 1,5 (API de niveau 3) et Android 1.6 (API Niveau 4 et plus), vous pouvez utiliser la qualification v4 pour marquer toutes les ressources qui devraient être exclus lorsque votre application est en cours d'exécution sur les applications 1,5 (API de niveau 3).
J'ai changé ma commande de mise en page d'avoir
- res / layout-v3 (pour Android 1.5 seulement -> ce fut une fausse supposition que je fait)
- res / layout (pour toute autre chose)
à ma nouvelle configuration d'avoir:
- res / layout-v4 (pour les applications 1,6 et plus)
- 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 dans les parenthèses sont correctes cette fois-ci devrait maintenant fonctionner. Cependant, le résultat est le suivant:
- Android 1.5 utilise res / layout -> OK
- Android 1.6 est l'utilisation res / layout-v4 -> OK
- Android 2.0 est d'utiliser res / mise en page -> NOT OK
- Android 2.1 est l'utilisation res / layout-v4 -> OK
Alors, pourquoi est Android 2.0 (sur les deux Emulator et Motorola Milestone) ne pas choisir le bon dossier des ressources de mise en page?
Je l'ai testé puis de nouveau avec 2.0.1 et il semble y travailler. Donc, cela semble être un bug dans la version 2.0 qui glissai dans 2.0.1
Mais la chose la plus étrange: pour le faire fonctionner en quelque sorte sur 2.0 je copiais le dossier res / layout-v4 res / layout-v5 pour forcer Android 2.0 en utilisant cette ressource de mise en page. Ça n'a pas marché. Mais j'essayé de copier à res / layout-v6 (qui est censé être Android 2.0.1) et le tour est joué tout à coup, il fonctionne avec 2.0. Très étrange! Mais j'espère que cette solution aidera quelques autres personnes là-bas.
La solution
Je l'ai testé plusieurs dispositifs et émulateurs (bien que pas très bien), et il semble que le dossier de ressource sélectionnée est celle avec version supérieure <= version de l'appareil .