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.

Était-ce utile?

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 .

scroll top