Question Quelle est la difference entre match_parent et fill_parent?


Je suis un peu confus à propos 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?


1262
2018-04-23 03:31


origine


Réponses:


Ils sont la même chose (au niveau API 8+). Utilisation match_parent.

FILL_PARENT (renommé MATCH_PARENT dans l'API niveau 8 et supérieur), ce qui signifie que la vue doit être aussi grande que son parent (padding moins)

...

fill_parent: La vue doit être aussi grande que son parent (padding moins). Cette constante est dépréciée à partir du niveau d'API 8 et est remplacée par match_parent.

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


1158
2018-04-23 03:33



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

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

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


228
2017-12-11 13:23



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 LayoutParams.MATCH_PARENT les deux ont une valeur -1. Vous n'êtes pas sûr de ce que Google a tenté de changer de Fill Parent à Match Parent :)

Depuis la plupart des phones are >= Android 2.2 .. vous devriez utiliser Match Parent pour une compatibilité future ... pas sûr quand ils vont arrêter la constante Fill Parent plus ancienne!


22
2017-09-20 07:25



Par souci de compatibilité, il est préférable de s'en tenir à fill_parent, c'est-à-dire lorsque vous utilisez des API 8 en dessous. Mais si votre application cible les API 8 et supérieures, vous devez utiliser match_parent à la place.


10
2017-07-02 10:49



fill_parent (renommé MATCH_PARENT au niveau de l'API 8 et plus haut), ce qui signifie que la vue veut être aussi grande que son parent (padding moins)

fill_parent: La vue doit être aussi grande que son parent (padding moins). Cette constante est dépréciée à partir du niveau de l'API 8 et est remplacé par match_parent

Pour l'API Android 1.6 à 2.1  match_parent va vous jeter une erreur, alors utilisez fill_parent dans ces cas. Pour prendre en charge la rétrocompatibilité, il est préférable d'utiliser fill_parent

  • Les deux sont des constantes définitives 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 sont simplement des noms de constante différents pour la même valeur entière (-1 si vous êtes curieux) utilisés pour spécifier le mode de présentation d'une vue dans son parent.

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

Je me souviens que Roman Guy (Android Developer chez Google) a dit, qu'ils ont changé le nom parce que "fill_parent"était source de confusion pour les développeurs."fill_parent"ne remplit pas l'espace restant (pour lequel vous utilisez l'attribut weight) mais il prend autant de place que son parent layout.match_parent"


10
2018-05-23 07:19



MATCH_PARENT et FILL_PARENTsont identiques?

Oui, MATCH_PARENT et FILL_PARENT sont simplement des noms de constante différents pour la même valeur entière (-1 si vous êtes curieux) utilisés pour spécifier le mode de présentation d'une vue dans son parent.

Alors pourquoi était-ce MATCH_PARENT ajoutée?

L'équipe Android a constaté que les développeurs interprétaient mal FILL_PARENT pour signifier qu'un View remplirait l'espace restant dans son parent. En fait, en spécifiant FILL_PARENT, la View demande à être aussi grand que son parent. Ainsi, (comme expliqué par Romain Guy lui-même dans cette vidéo vers 10h56) la constante a été renommée MATCH_PARENT pour clarifier son utilisation.

D'accord, je comprends comment FILL_PARENT/MATCH_PARENT travaux. 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 il finira par disparaître. Votre application est plus pérenne en utilisant MATCH_PARENT. Pourquoi utiliser l'option deprecated lorsque l'option actuelle se comporte exactement de la même manière?

En outre, FILL_PARENT est en fait trompeur. J'ai personnellement vu des gens confus parce que cela ne fonctionne pas comme ils le pensaient. En fait, j'ai vu une seule étiquette en utilisant à la fois FILL_PARENT et MATCH_PARENT, parce que le développeur pensait (compréhensible) qu'ils étaient deux modes de mise en page différents.

COMMENT VOUS POUVEZ OBTENIR TRIPPED UP ESSAYER DE FILL_PARENT?

Voici un exemple rapide de comment MATCH_PARENT/FILL_PARENT la confusion peut conduire à des gens appliquant à plusieurs reprises leurs têtes à leurs bureaux. Tout d'abord, prenez une mise en page très simple contenant quelques View instances.

<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>

6
2018-04-15 04:20



FILL_PARENT est obsolète au niveau de l'API 8 et MATCH_PARENTutiliser l'API higherlevel


5
2017-09-24 06:56



match_parent  est utilisé à la place de fill_parent et le met à aller aussi loin que le parent va. Juste utiliser match_parent et oublie fill_parent. J'ai complètement abandonné fill_parent et tout est parfait comme d'habitude.

Vérifier ici pour plus.


5
2018-03-01 08:53



Juste pour lui donner un nom plus proche de son action réelle. "fill_parent" ne remplit pas l'espace restant comme le nom impliquerait (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"


4
2018-04-17 11:34