2010-12-10 15 views
1

Quelle est la meilleure mise en page à utiliser pour prendre en charge l'application sur différents périphériques (Taille de l'écran)?Quelle est la disposition la plus flexible?

EDIT

Je ne parle pas seulement de redimensionner la mise en page, évidemment le système d'exploitation fait automatiquement. Je parle de repositionner les objets dans ma mise en page.

par repositionnement Je veux dire déplacer les objets en fonction de la taille de l'écran. Par exemple, j'ai créé ma mise en page pour un écran plus grand qui a l'air bien, mais quand je cours l'application sur un petit appareil (petit écran) certains de mes éléments d'interface utilisateur étaient hors de la limite de mon écran.

+0

pourquoi -1? au moins laisser un commentaire et expliquer la raison – aryaxt

+0

Rien de pire qu'un downvote drive-by. Upvoted pour compenser. :) – kcoppock

+0

Commencé, ces guerres de vote ont. – kcoppock

Répondre

4

Il n'y a pas mise en page « meilleur ». Presque tous les types de mises en page vont évoluer vers différents appareils (Android est conçu autour de ce concept) autre que AbsoluteLayout, qui est de toute façon obsolète. LinearLayout est préférable si vous avez juste une ligne (horizontale ou verticale) de contenu à insérer. L'utilisation de valeurs telles que les valeurs DIP, fill_parent ou wrap_content s'adapte automatiquement à leur contenu ou à la taille de l'écran. RelativementLayout, comme l'a souligné Vladimir, est le meilleur pour les mises en page où les vues sont positionnées par rapport à d'autres objets dans la mise en page. Par exemple, un TextView placé à côté d'un bouton "Soumettre" est un exemple courant. FrameLayout est en quelque sorte un remplacement de AbsoluteLayout; vous pouvez superposer des objets les uns sur les autres, en spécifiant simplement les décalages de marge sur les côtés du cadre. TableLayout est, comme il semble, une disposition pour la conception de style de table. Vous pouvez avoir plusieurs lignes et colonnes, et définir certaines colonnes à étirer pour s'adapter à la taille de l'affichage, de sorte que peu importe la taille de l'écran, la mise en page correspond à ce que vous avez conçu.

EDIT: Si des objets tombent en dehors de la zone d'écran, essayez d'envelopper votre disposition racine dans un <ScrollView>. Cela permettra à la mise en page d'être défilable.

par exemple.

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <RelativeLayout 
     ..... //and so on 
    </RelativeLayout> 
</ScrollView> 
0

RelativeLayout est ce que vous devriez regarder. Il redimensionne facilement les éléments par rapport à leurs voisins. Assurez-vous d'inclure dessinables pour toutes les résolutions et densités

+1

en fait, toute disposition redimensionne facilement les éléments, car le système Android fait cela, la disposition relative vous permet juste de les définir les uns par rapport aux autres. –

+0

@Vladimir oui j'en suis conscient. RelativeLayouts sont plus efficaces que d'autres (comme LinearLayout), c'est pourquoi je les ai mentionné spécifiquement – smith324

0

LinearLayout, RelativeLayout, FrameLayout sont mises en page d'importation ....

1

Tous les plans sont flexibles en termes de taille ... la règle est: ne pas utiliser AbsoluteLayout. C'est tout.

Et en ce qui concerne les préoccupations de repositionnement ... eh bien, utilisez toujours des trempettes au lieu de pixels et vous êtes prêt à partir. Encore une fois, n'utilisez pas AbsoluteLayout, le reste des mises en page devrait fonctionner correctement sur toutes les tailles d'écran. Parfois, vous pouvez anticiper ces "actes disparaissants" en enveloppant votre mise en page dans un ScrollView.

+0

J'utilisais en fait AbsoluteLayout :(c'est peut-être pourquoi ma vue et ses sous-vues ne sont pas redimensionnées – aryaxt