Quelle est la différence entre le parent de correspondance et le parent de remplissage?

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. Quelle est la différence entre eux?

1282
demandé sur Adam Stelmaszczyk 2011-04-23 07:31:10

17 réponses

C'est la même chose (dans L'API Niveau 8+). Utilisez match_parent.

FILL_PARENT (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)

...

fill_parent: la vue devrait ê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 match_parent.

Http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

1172
répondu Matt Ball 2011-04-23 03:33:49

Google a changé le nom pour éviter toute confusion.

Le problème avec l'ancien nom fill parent était qu'il implique qu'il affecte les dimensions du parent, tandis que match parent décrit mieux le comportement résultant-correspond à la dimension avec le parent.

Les deux constantes résolvent à -1 à la fin, et entraînent ainsi le comportement identique dans l'application. Ironiquement, ce changement de nom fait pour clarifier les choses semble avoir ajouté de la confusion plutôt que de l'éliminer.

231
répondu Tapirboy 2015-01-30 09:30:08

Fonctionnellement pas de différence, Google vient de changer le nom de fill_parent à match_parent, à partir du niveau API 8 (Android 2.2). FILL_PARENT est toujours disponible pour des raisons de compatibilité.

LayoutParams.FILL_PARENT et LayoutParams.MATCH_PARENT les deux ont de la valeur -1. Je ne sais pas ce qui a tenté google de changer de parent de remplissage pour correspondre au Parent:)

Depuis la plupart des phones are >= Android 2.2 .. vous devez utiliser Match Parent pour une compatibilité future... Je ne sais pas quand ils vont cesser la constante parent de remplissage plus!

24
répondu Umair 2012-09-20 07:25:40

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 API 8 et plus, vous devez utiliser match_parent à la place.

11
répondu Olumide Oyetoke 2013-08-07 11:23:06

fill_parent (renommé MATCH_PARENT au niveau de L'API8 et plus haut), ce qui signifie que la vue veut être aussi grande que son parent (moins le remplissage)

fill_parent: la vue devrait être aussi grande que son parent (moins le remplissage). Cette constante est obsolète à partir du niveau API 8 et est remplacé par match_parent

Pour Android API 1.6 pour 2.1 match_parent vous gratifiera d'une erreur, afin de l'utiliser fill_parent dans ces cas. Pour soutenir la rétrocompatibilité, il est préférable d'utiliser fill_parent

  • les deux sont des constantes finales statiques qui représentent la valeur -1
  • {[7] } est obsolète au niveau de L'API 8

Donc MATCH_PARENT et FILL_PARENT sont les mêmes?

Oui, MATCH_PARENT et FILL_PARENT ne sont que des noms de constantes différents pour la même valeur entière (-1 si vous êtes curieux) utilisée pour spécifier le mode de mise en page d'une vue dans son parent.

Alors pourquoi MATCH_PARENT a-t-il été ajouté?

Je me souviens de ce Roman Guy (développeur Android chez Google) a dit, qu'ils ont changé le nom parce que "fill_parent " était source de confusion pour les développeurs. En fait, "fill_parent " ne remplit pas l'espace restant (pour cela vous utilisez l'attribut weight) mais il prend autant d'espace que son parent de mise en page. C'est pourquoi le nouveau nom est "match_parent"

11
répondu Kartheek 2015-05-23 07:19:10

MATCH_PARENT et FILL_PARENT sont les mêmes?

Oui, MATCH_PARENT et FILL_PARENT ne sont que des noms de constantes différents pour la même valeur entière (-1 si vous êtes curieux) utilisée pour spécifier le mode de mise en page d'une vue dans son parent.

Alors pourquoi MATCH_PARENT a-t-il été ajouté?

L'équipe Android a constaté que les développeurs interprétaient mal {[2] } pour signifier qu'un View remplirait l'espace restant dans son parent. En fait, en spécifiant FILL_PARENT, le View demande d'être aussi fort que son parent.

OK, je comprends comment fonctionne FILL_PARENT/MATCH_PARENT. Qu'importe si j'utilise l'un ou l'autre?

FILL_PARENT est obsolète. Être déprécié n'en fait pas le diable, mais finalement il disparaîtra. Votre application est plus pérenne en utilisant MATCH_PARENT. Pourquoi utiliser l'option obsolète lorsque l'option se comporte exactement de la même chose?

De plus, FILL_PARENT est en fait trompeur. J'ai personnellement vu des gens confus parce que cela ne fonctionne pas comme ils le pensaient serait. En fait, j'ai vu une seule balise utilisant à la fois FILL_PARENT et MATCH_PARENT, parce que le développeur pensait (naturellement) qu'il s'agissait de deux modes de mise en page différents.

COMMENT VOUS POUVEZ VOUS FAIRE TRÉBUCHER EN ESSAYANT DE FILL_PARENT?

Voici un exemple rapide de la façon dont MATCH_PARENT/FILL_PARENT la confusion peut amener les gens à appliquer à plusieurs reprises leurs têtes à leurs bureaux. Tout d'abord, prenez une mise en page très simple contenant quelques instances View.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <View
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="#FFFF00" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="@android:color/black"
        android:text="@string/hello_world"
        android:padding="50dp" />
    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FF0000" />

</LinearLayout>
7
répondu Ravi Vaghela 2018-08-31 09:49:57

FILL_PARENT est obsolète dans L'API de niveau 8 et MATCH_PARENT utilise L'API higherlevel

6
répondu Avanish Kumar 2015-09-24 06:56:30

Match_parent est utilisé à la place de fill_parent et il définit à aller aussi loin que le parent va. Suffit d'utiliser match_parent et oublier fill_parent. J'ai complètement abandonné fill_parent et tout est parfait comme d'habitude.

Vérifier ici pour plus d'.

6
répondu Koech 2016-03-01 08:53:43

Juste pour lui donner un nom plus proche de son action. "fill_parent" ne remplit pas l'espace restant comme le nom l'impliquerait (pour cela, vous utilisez l'attribut weight). Au lieu de cela, il prend autant de place que son parent de mise en page. C'est pourquoi le nouveau nom est "match_parent"

5
répondu Xar E Ahmer 2014-12-16 07:16:08

Les deux ont des fonctionnalités similaires seule différence est que fill_parent est utilisé jusqu'au niveau API 8 et match_parent est utilisé après le niveau API 8 ou supérieur.

4
répondu Praveen Gaur 2017-03-22 08:06:00

Lorsque vous définissez layout width et height comme match_parent dans la propriété XML, elle occupera la zone complète de 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 du lièvre est Rouge et l'enfant est vert. Enfant occupent toute la zone. Parce que c'est width et height sont match_parent.

entrez la description de l'image ici

Note: Si parent est appliqué un remplissage alors cet espace ne serait 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>

entrez la description de l'image ici

Donc TextView hight = 300dp(parent d'altitude) - (20(paddingTop)+10(paddingBottom)) = (300 - 30) dp = 270 dp

Fill_parent Vs match_parent

fill_parent est le nom précédent de match_parent

Pour les API de niveau 8 et supérieur fill_parent renommé match_parent et fill_parent est obsolète maintenant.

, Donc fill_parent et match_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}.

3
répondu 2017-08-07 07:58:16

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 android 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 a été utilisé dans les versions précédentes, mais maintenant, il a été abandonné et remplacé par match_parent. J'espère que ça va vous aider.

3
répondu Mansuu.... 2017-12-28 05:52:46

Fill_parent: la vue doit être aussi grande que son parent.

Maintenant ce contenu fill_parent est obsolète et remplacé par match_parent.

2
répondu Nikita Prajapati 2017-05-01 13:08:55

Me remplir parent et match parent effectue la même fonction que:

Remplir parent: A été utilisé avant API 8

Correspondance parent Cela a été utilisé à partir de L'API 8+ fonction des deux Remplit la vue parent de côté le remplissage

2
répondu Xcode 2017-05-28 04:25:01

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 entourer son contenu (plus le remplissage)

Par souci de meilleure illustration, j'ai créé un exemple de mise en page qui démontre 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 répartie sur son parent entier longueur.

Mais nous pouvons voir dans" Wrap Content " textView content, sa largeur de mise en page enveloppée de sa longueur de contenu(Wrap Content).

Mise En Page Android

2
répondu Subarata Talukder 2017-07-26 14:07:16

FILL_PARENT a été renommé MATCH_PARENT au niveau de L'API 8 et supérieur, ce qui signifie que la vue veut être aussi grande que son parent (moins le remplissage) - Google

2
répondu Sarvesh Thiruppathi 2017-11-13 10:53:53

Fill_parent (renommé MATCH_PARENT au niveau de L'API 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 du niveau 8 de L'API et est remplacée par match_parent

Pour Android API 1.6 à 2.1 match_parent vous lancera une erreur, alors utilisez fill_parent dans ces cas. Pour soutenir la rétrocompatibilité, il est préférable d'utiliser fill_parent

Les deux sont des constantes finales statiques qui représentent la valeur -1

FILL_PARENT est obsolète au niveau de L'API 8

DONC MATCH_PARENT ET FILL_PARENT SONT LES MÊMES?

Oui, MATCH_PARENT et FILL_PARENT ne sont que des noms de constantes différents pour la même valeur entière (-1 si vous êtes curieux) utilisée pour spécifier le mode de mise en page d'une vue dans son parent.

ALORS, POURQUOI MATCH_PARENT A-T-IL ÉTÉ AJOUTÉ?

En tant que Roman Guy (développeur Android chez Google) dit, qu'ils ont changé le nom parce que "fill_parent" était source de confusion pour les développeurs. En fait, "fill_parent" ne remplit pas l'espace restant (pour cela vous utilisez l'attribut weight) mais il prend comme

1
répondu Patrick R 2016-08-03 05:36:39