Je suis un peu confus au sujet de deux propriétés XML: match_parent
et fill_parent
. Il semble que les deux soient identiques. Y a-t-il une différence entre eux?
android
android-layout
vnshetty
la source
la source
Réponses:
C'est la même chose (dans l'API niveau 8+). Utilisez
match_parent
.http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
la source
-1
. Si vous vous sentez mieux à ce sujet, je n'ai pas non plus l'improvisation là-dedans ... :-)-1
. Vous obtenez l'erreur car l'ancienne plate-forme ne connaît pas le nouveau nom de la même constante.Google a changé le nom pour éviter toute confusion.
Le problème avec l'ancien nom
fill parent
est qu'il implique qu'il affecte les dimensions du parent, alors qu'ilmatch parent
décrit mieux le comportement résultant - faites correspondre la dimension avec le parent.Les deux constantes se résolvent à
-1
la fin et entraînent donc le même comportement dans l'application. Ironiquement, ce changement de nom apporté pour clarifier les choses semble avoir ajouté de la confusion plutôt que de l'éliminer.la source
Fonctionnellement, aucune différence, Google vient de changer le nom de fill_parent en match_parent, à partir du niveau d'API 8 (Android 2.2). FILL_PARENT est toujours disponible pour des raisons de compatibilité.
LayoutParams.FILL_PARENT
et lesLayoutParams.MATCH_PARENT
deux ont la valeur -1. Je ne sais pas ce qui a tenté Google de passer de Fill Parent à Match Parent :)Étant donné que la plupart des
phones are >= Android 2.2
.. vous devez utiliser Match Parent pour une compatibilité future ... vous ne savez pas quand ils arrêteront l'ancienne constante Fill Parent!la source
Pour des raisons de compatibilité, il est préférable de s'en tenir à fill_parent, c'est-à-dire lors de la prise en charge des périphériques API 8 ci-dessous. Mais si votre application cible l'API 8 et les versions ultérieures, vous devez utiliser match_parent à la place.
la source
FILL_PARENT
est déconseillé (comme mentionné par Matt Ball ci-dessus), alors la seule option pour la compatibilité directe estMATCH_PARENT
.FILL_PARENT
est obsolète dans l'API niveau 8 etMATCH_PARENT
utilise l' API de niveau supérieurla source
match_parent est utilisé à la place de fill_parent et le définit pour aller aussi loin que le parent. Utilisez simplement match_parent et oubliez fill_parent . J'ai complètement abandonné fill_parent et tout est parfait comme d'habitude.
Vérifiez ici pour en savoir plus.
la source
Juste pour lui donner un nom plus proche de son action réelle .
"fill_parent"
ne remplit pas l'espace restant comme son nom l'indique (pour cela, vous utilisez l'attribut weight). Au lieu de cela, il prend autant d'espace que son parent de disposition. Voilà pourquoi le nouveau nom est"match_parent"
la source
Les deux ont des fonctionnalités similaires, seule la différence est que fill_parent est utilisé jusqu'au niveau d'API 8 et match_parent est utilisé après le niveau d'API 8 ou un niveau supérieur.
la source
Lorsque vous définissez la mise en page
width
etheight
commematch_parent
dans laXML
propriété, il occupera toute la surface que la vue parent a, par exemple , il sera aussi grand que le parent.Le parent de lièvre est rouge et l'enfant est vert. L'enfant occupe toute la zone. Parce que c'est
width
etheight
c'estmatch_parent
.Remarque: Si un parent est appliqué un remplissage, cet espace ne serait pas inclus.
Donc TextView hight = 300dp (hauteur parent) - (20 (paddingTop) +10 (paddingBottom)) = (300 - 30) dp = 270 dp
fill_parent Vs match_parent
fill_parent
est le nom précédent dematch_parent
Pour API niveau 8 et supérieur
fill_parent
renomméematch_parent
etfill_parent
obsolète maintenant.Alors
fill_parent
etmatch_parent
sont les mêmes.Documentation API pour fill_parent
La vue doit être aussi grande que son parent (moins le remplissage). Cette constante est obsolète à partir du niveau 8 de l'API et est remplacée par {@code match_parent}.
la source
match_parent, ce qui signifie que la vue veut être aussi grande que son parent (moins le remplissage).
wrap_content, ce qui signifie que la vue veut être juste assez grande pour contenir son contenu (plus le remplissage)
Pour une meilleure illustration, j'ai créé un exemple de mise en page qui illustre ce concept. Pour voir son effet, j'ai ajouté une bordure de chaque contenu textView.
Dans le contenu textView "Match parent", nous pouvons voir sa largeur de mise en page étalée sur toute sa longueur parent.
Mais nous pouvons voir dans "Wrap Content" textView content, sa largeur de mise en page enveloppée dans sa longueur de contenu (Wrap Content).
la source
match_parent
etfill_parent
sont la même propriété, utilisée pour définir la largeur ou la hauteur d'une vue en plein écran horizontalement ou verticalement.Ces propriétés sont utilisées dans des fichiers xml Android comme celui-ci.
ou
fill_parent
était utilisé dans les versions précédentes, mais il est désormais obsolète et remplacé parmatch_parent
. J'espère que ça vous aidera.la source
fill_parent: la vue doit être aussi grande que son parent.
maintenant ce contenu fill_parent est obsolète et remplacé par match_parent.
la source
Pour moi, remplir le parent et faire correspondre le parent remplit la même fonction que:
parent de remplissage : a été utilisé avant l'API 8
match parent Ceci a été utilisé à partir de l'API 8+ Fonction des deux Remplit la vue parent à côté du rembourrage
la source
FILL_PARENT a été renommé MATCH_PARENT dans l'API de niveau 8 et supérieur, ce qui signifie que la vue veut être aussi grande que son parent (moins le remplissage) - Google
la source
FILL_PARENT
est obsolète à partir de l'API de niveau 8 et supérieur et il est renommé pour les versions supérieures enMATCH_PARENT
Les deux sont identiques
FILL_PARENT
etMATCH_PARENT
, aFILL_PARENT
été utilisé dans la version inférieure inférieure au niveau API 8 et MATCH_PATENT sont utilisés dans le niveau API supérieur supérieur à 8.FILL_PARENT
(renomméMATCH_PARENT
dans l'API niveau 8 et supérieur), ce qui signifie que la vue veut être aussi grande que son parent (remplissage moins)fill_parent
: La vue doit être aussi grande que son parent (moins le remplissage). Cette constante est déconseillée à partir du niveau 8 de l'API et est remplacée parmatch_parent
.Pour plus de détails, visitez cette page
la source
1. match_parent
Lorsque vous définissez la largeur et la hauteur de la disposition sur match_parent, il occupera la zone complète de la vue parent, c'est-à-dire qu'il sera aussi grand que le parent.
Remarque : Si un parent est appliqué un remplissage, cet espace ne serait pas inclus.
Lorsque nous créons un layout.xml par défaut, nous avons RelativeLayout comme vue parent par défaut avec android: layout_width = "match_parent" et android: layout_height = "match_parent", c'est-à-dire qu'il occupe la largeur et la hauteur complètes de l'écran mobile.
Notez également que le rembourrage est appliqué sur tous les côtés,
Permet maintenant d'ajouter une sous-vue LinearLayout et définit ses layout_width = "match_parent" et layout_height = "match_parent", la vue graphique afficherait quelque chose comme ceci,
match_parent_example
Code
2. fill_parent:
C'est la même chose que match_parent, fill_parent a été déprécié dans l'API niveau 8. Donc, si vous utilisez l'API niveau 8 ou supérieur, vous devez éviter d'utiliser fill_parent
Permet de suivre les mêmes étapes que nous avons fait pour match_parent, utilisez plutôt fill_parent à la place.
Vous verriez qu'il n'y a aucune différence de comportement entre fill_parent et match parent.
la source