2016-04-25 5 views
0

Y at-il un moyen de directement dire à android quelle ressource de mise en page à choisir pour le mode paysage ou portrait?android mise en page paysage/portrait avec différentes options

Je sais normalement que c'est simple, mettez le "main_layout.xml" normal dans le dossier "res/layout" et le paysage "main_layout.xml" dans le dossier "res/layout-land". Supposons maintenant que j'ai deux mises en page appelées «main_layout_blue.xml» et «main_layout_red.xml». L'utilisateur peut en choisir un et je peux définir la mise en page appropriée. Sur l'orientation changer encore tout va bien. Là où je suis coincé est en donnant à l'utilisateur une option pour définir différentes mises en page pour différentes orientations comme "main_layout_blue.xml" pour le mode portrait et "main_layout_red.xml" pour le mode paysage.

Existe-t-il une option android pour indiquer explicitement au système d'utiliser "res/layout/main_layout_blue.xml" pour l'orientation portrait et "res/layout-land/main_layout_red.xml" pour l'orientation paysage? Qu'est-ce qui me manque ici?

Répondre

0

Après le changement d'orientation, la vue sera recréé afin que vous puissiez vérifier l'orientation du dispositif par ce qui suit:

Activity.getResources().getConfiguration().orientation 

et en fonction du résultat, vous pouvez:

if(portrait) 
     setContentView(R.layout.blue) 
    else 
     setContentView(R.layout.red) 

mais garder à l'esprit de mettre toutes les ressources dans/dossier de mise en page

+0

Bonjour Pooya. J'ai oublié de mentionner que atm est mon préféré solution de contournement. J'espérais juste qu'il pourrait y avoir un moyen d'éviter d'écouter explicitement les changements d'orientation en déclarant quelle ressource choisir avant. – Marchand

+0

@Marchand puisque vous laissez l'utilisateur choisir la mise en page préférée au moment de l'exécution, vous devez mettre une certaine logique dans votre code pour trouver les préférences de l'utilisateur et le lier à vos mises en page disponibles – Pooya