Je suis un peu confus au sujet de deux propriétés XML: match_parent
et fill_parent
. Il semble que les deux sont les mêmes. Y a-t-il une différence entre eux?
Ils sont la même chose (dans API niveau 8+). Utilisez match_parent
.
FILL_PARENT (renommé MATCH_PARENT dans les API de niveau 8 et supérieur), ce qui signifie que la vue veut être aussi grande que son parent (moins le remplissage)
...
fill_parent
: La vue doit être aussi grande que son parent (moins le remplissage). Cette constante est obsolète à partir de l'API niveau 8 et est remplacée parmatch_parent
.
http://developer.Android.com/reference/Android/view/ViewGroup.LayoutParams.html
Google a changé le nom pour éviter toute confusion.
Le problème avec l'ancien nom fill parent
était qu'il impliquait des conséquences sur les dimensions du parent, alors que match parent
décrit mieux le comportement résultant - correspond à la dimension avec le parent.
Les deux constantes se résolvent en -1
à la fin, ce qui entraîne un comportement identique dans l'application. Ironiquement, ce changement de nom apporté pour clarifier les choses semble avoir semé la confusion au lieu de l'éliminer.
Sur le plan fonctionnel, Google a simplement changé le nom de fill_parent en match_parent, à partir du niveau 8 de l'API (Android 2.2). FILL_PARENT est toujours disponible pour des raisons de compatibilité.
LayoutParams.FILL_PARENT
et LayoutParams.MATCH_PARENT
ont tous les deux la valeur -1. Pas sûr de ce que google tenté de changer de remplir le parent pour correspondre à parent :)
Étant donné que la plupart des phones are >= Android 2.2
.. vous devez utiliser Match Parent pour une compatibilité future ... ne savez pas quand ils abandonneront l'ancienne constante Fill Parent!
Par souci de compatibilité, il est préférable de vous en tenir à fill_parent, c'est-à-dire lorsque vous prenez en charge des périphériques inférieurs à API 8 . Mais si votre application cible l'API 8 et les versions ultérieures, utilisez plutôt match_parent.
match_parent est utilisé à la place de fill_parent et lui permet d'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 plus.
FILL_PARENT
est obsolète dans les API de niveau 8 et MATCH_PARENT
use de niveau supérieur.
Les deux ont des fonctionnalités similaires, mais la différence est que fill_parent est utilisé jusqu'au niveau 8 de l'API et que match_parent est utilisé après le niveau 8 ou supérieur de l'API.
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 de place que son parent de disposition. C'est pourquoi le nouveau nom est "match_parent"
Lorsque vous définissez la disposition width
et height
en tant que match_parent
dans la propriété XML
, elle occupera toute la zone occupée par la vue parent, c'est-à-dire qu'elle sera aussi grande que le parent.
<LinearLayout
Android:layout_width="300dp"
Android:layout_height="300dp"
Android:background="#f9b0b0">
<TextView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="#b0f9dc"/>
</LinearLayout>
Le parent de lièvre est rouge et l'enfant est vert. Enfant occuper toute la zone. Parce que c'est width
et height
sont match_parent
.
Remarque: Si le parent est appliqué à un remplissage, cet espace ne sera pas inclus.
<LinearLayout
Android:layout_width="300dp"
Android:layout_height="300dp"
Android:background="#f9b0b0"
Android:paddingTop="20dp"
Android:paddingBottom="10dp">
<TextView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="#b0f9dc"/>
</LinearLayout>
Donc TextView hight = 300dp (hauteur parent) - (20 (paddingTop) +10 (paddingBottom)) = (300 - 30) dp = 270 dp
fill_parent
est l'ancien nom de match_parent
Pour l'API de niveau 8 et supérieur, fill_parent
renommé en match_parent
et fill_parent
est obsolète maintenant.
Donc, fill_parent
et match_parent
sont identiques.
La vue doit être aussi grande que son parent (moins le rembourrage). Cette constante est obsolète à partir de l'API niveau 8 et est remplacée par {@code match_parent}.
match_parent
et fill_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 les fichiers XML xml comme ceci.
Android:layout_width="match_parent"
Android:layout_height="fill_parent"
ou
Android:layout_width="fill_parent"
Android:layout_height="match_parent"
fill_parent
était utilisé dans les versions précédentes, mais il est maintenant obsolète et remplacé par match_parent
. J'espère que cela vous aidera.
Pour moi remplir parent et correspondre parent remplit la même fonction uniquement que:
fill parent : A été utilisé avant API 8
match parent Ceci a été utilisé à partir de l'API 8 + Fonction des deux Remplit la vue parent en dehors du remplissage
fill_parent: La vue doit être aussi grande que son parent.
désormais, ce contenu fill_parent est obsolète et remplacé par match_parent.
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 un remplissage)
Par souci d’illustration, j’ai créé un exemple de présentation illustrant ce concept. Pour voir son effet, j'ai ajouté une bordure de chaque contenu textView.
Dans le contenu textView "Match parent", nous pouvons voir que sa largeur de mise en page est répartie sur toute la longueur de son parent.
Mais nous pouvons voir dans "Wrap Content" le contenu textView, sa largeur de mise en page est encapsulée dans sa longueur (Wrap Content).
FILL_PARENT
est obsolète à partir de l'API de niveau 8 et supérieur et renommé MATCH_PARENT
pour les versions supérieures.
Les deux sont identiques FILL_PARENT
et MATCH_PARENT
, FILL_PARENT
a été utilisé dans la version inférieure inférieure au niveau d'API 8 et MATCH_PATENT sont utilisés dans le niveau supérieur d'API supérieur à 8.
FILL_PARENT
(renommé MATCH_PARENT
dans les API de niveau 8 et supérieur), ce qui signifie que la vue veut être aussi grande que son parent (moins le remplissage)
fill_parent
: La vue doit être aussi grande que son parent (moins le remplissage). Cette constante est obsolète à partir de l'API niveau 8 et est remplacée par match_parent
.
Pour plus de détails s'il vous plaît visitez this page
FILL_PARENT a été renommé MATCH_PARENT dans les API de niveau 8 et supérieur, ce qui signifie que la vue veut être aussi grande que son parent (moins le remplissage) - Google
1. match_parent
Lorsque vous définissez la largeur et la hauteur de la présentation comme match_parent, elle occupe toute la surface de la vue parente, c'est-à-dire qu'elle est aussi grande que la vue parent.
Remarque : Si un parent est appliqué à un parent, cet espace ne sera pas inclus.
Lorsque nous créons un fichier layout.xml par défaut, nous avons RelativeLayout comme parent par défaut. View avec Android: layout_width = "match_parent" et Android: layout_height = "match_parent", c’est-à-dire qu’il occupe toute la largeur et la hauteur de l’écran de votre mobile.
Notez également que le rembourrage est appliqué à tous les côtés,
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
Ajoutons maintenant une vue secondaire LinearLayout et définissons ses propriétés layout_width = "match_parent" et layout_height = "match_parent", la vue graphique affichera quelque chose comme ceci,
match_parent_example
Code
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.code2care.Android.togglebuttonexample.MainActivity" >
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:layout_marginLeft="11dp"
Android:background="#FFFFEE"
Android:orientation="vertical" >
2. fill_parent:
Identique à match_parent, fill_parent a été amorti dans l'API de niveau 8. Si vous utilisez l'API de niveau 8 ou supérieur, vous devez éviter d'utiliser fill_parent.
Suivons les mêmes étapes que pour match_parent, mais utilisons plutôt fill_parent partout.
Vous constaterez qu'il n'y a pas de différence de comportement entre fill_parent et match parent.