Sous Android, lors de la mise en page des widgets, quelle est la différence entre fill_parent
( match_parent
dans l'API niveau 8 et supérieur) et wrap_content
?
Y a-t-il une documentation sur laquelle vous pouvez pointer? Je souhaite très bien le comprendre.
android
layout
user-interface
pupeno
la source
la source
fill_parent
été renommématch_parent
en API niveau 8 et supérieur.Réponses:
L'un ou l'autre des attributs peut être appliqué à la taille horizontale ou verticale de View (contrôle visuel). Il est utilisé pour définir une taille de vue ou de disposition en fonction de son contenu ou de la taille de sa disposition parent plutôt que de spécifier explicitement une dimension.
fill_parent
(obsolète et renomméMATCH_PARENT
en API niveau 8 et supérieur)Définir la disposition d'un widget sur fill_parent le forcera à s'étendre pour occuper autant d'espace que disponible dans l'élément de disposition dans lequel il a été placé. C'est à peu près l'équivalent de définir le style d'ancrage d'un contrôle de formulaire Windows sur
Fill
.La définition d'une disposition ou d'un contrôle de niveau supérieur sur fill_parent l'obligera à occuper tout l'écran.
wrap_content
La définition de la taille d'une vue sur wrap_content la forcera à s'étendre suffisamment loin pour contenir les valeurs (ou les contrôles enfants) qu'elle contient. Pour les contrôles - comme les zones de texte (TextView) ou les images (ImageView) - cela enveloppera le texte ou l'image affichée. Pour les éléments de mise en page, il redimensionnera la mise en page pour s'adapter aux contrôles / mises en page ajoutés en tant qu'enfants.
C'est à peu près l'équivalent de définir la
Autosize
propriété True d' un contrôle de formulaire Windows .Documentation en ligne
Il y a quelques détails dans la documentation du code Android ici .
la source
fill_parent
(obsolète) =match_parent
La bordure de la vue enfant se développe pour correspondre à la bordure de la vue parent.
wrap_content
La bordure de la vue enfant s'enroule parfaitement autour de son propre contenu.
Voici quelques images pour rendre les choses plus claires. Le vert et le rouge sont
TextViews
. Le blanc estLinearLayout
visible.Chaque
View
(aTextView
, anImageView
, aButton
, etc.) doit définir lewidth
et leheight
de la vue. Dans le fichier de mise en page XML, cela pourrait ressembler à ceci:En plus de définir la largeur et la hauteur sur
match_parent
ouwrap_content
, vous pouvez également les définir sur une valeur absolue:En général, ce n'est pas aussi bon, car il n'est pas aussi flexible pour des appareils de tailles différentes. Après avoir compris
wrap_content
etmatch_parent
, la prochaine chose à apprendre estlayout_weight
.Voir également
XML pour les images ci-dessus
Disposition linéaire verticale
Disposition linéaire horizontale
Remarque
L'explication de cette réponse suppose qu'il n'y a pas de marge ou de remplissage . Mais même s'il y en a, le concept de base est toujours le même. La bordure / l'espacement de la vue est juste ajusté par la valeur de la marge ou du remplissage.
la source
fill_parent
rendra la largeur ou la hauteur de l'élément aussi grande que l'élément parent, en d'autres termes, le conteneur.wrap_content
rendra la largeur ou la hauteur aussi grande que nécessaire pour contenir les éléments qui s'y trouvent.Cliquez ici pour la référence DOC ANDROID
la source
fill_parent
:Un composant est agencé pour que la disposition
fill_parent
soit obligatoire à développer pour remplir les membres de l'unité d'agencement, autant que possible dans l'espace. Cela est cohérent avec la propriété dockstyle du contrôle Windows. Une disposition ou un contrôle supérieurfill_parent
le forcera à occuper tout l'écran.wrap_content
Configurer une vue de la taille de
wrap_content
sera forcé à afficher est développé pour afficher tout le contenu. Les contrôles TextView et ImageView , par exemple, sont définis pourwrap_content
afficher l'intégralité de son texte et de son image internes. Les éléments de mise en page changeront la taille en fonction du contenu. Configurez une vue de la taille de l'attribut Taille automatique àwrap_content
peu près équivalente pour définir un contrôle Windows pour True.Pour plus de détails, veuillez consulter ce lien: http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
la source