Odpowiedzi:
Są takie same (w API Poziom 8+). Zastosowanie match_parent
.
FILL_PARENT (przemianowany na MATCH_PARENT na poziomie API 8 i wyższym), co oznacza, że widok chce być tak duży jak jego element nadrzędny (bez dopełnienia)
...
fill_parent
: Widok powinien być tak duży jak jego rodzic (minus dopełnienie). Ta stała jest przestarzała, począwszy od poziomu API 8 i jest zastępowana przezmatch_parent
.
http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
-1
. Czuję się lepiej, nie podoba mi się to, że ... :-)
-1
. Wystąpił błąd, ponieważ starsza platforma nie wie o nowej nazwie tej samej stałej.
Google zmieniło nazwę, aby uniknąć zamieszania.
Problem ze starą nazwą fill parent
polegał na tym, że implikuje to, że wpływa ona na wymiary elementu nadrzędnego, a match parent
lepiej opisuje wynikowe zachowanie - dopasowuje wymiar do elementu nadrzędnego.
Obie stałe rozwiązują się -1
na końcu, a więc powodują identyczne zachowanie w aplikacji. Jak na ironię, zmiana nazwy dokonana w celu wyjaśnienia rzeczy wydaje się wprowadzać zamieszanie, a nie go eliminować.
Funkcjonalnie bez różnicy, Google właśnie zmienił nazwę z fill_parent na match_parent, z poziomu API 8 (Android 2.2). FILL_PARENT jest nadal dostępny ze względu na kompatybilność.
LayoutParams.FILL_PARENT
i LayoutParams.MATCH_PARENT
oba mają wartość -1. Nie jestem pewien, co skłoniło google do zmiany z Fill Parent na Match Parent :)
Ponieważ większość phones are >= Android 2.2
... powinieneś użyć Match Parent dla przyszłej kompatybilności ... nie jestem pewien, kiedy przestaną używać starszej stałej Fill Parent!
Ze względu na kompatybilność lepiej trzymać się fill_parent, tzn. Gdy obsługujemy urządzenia z API poniżej 8. Ale jeśli twoja aplikacja jest ukierunkowana na API 8 i nowsze wersje, powinieneś użyć match_parent.
FILL_PARENT
jest przestarzałe (jak wspomniano powyżej Matt Ball), wówczas jedyną opcją dla zgodności z przodu jest MATCH_PARENT
.
FILL_PARENT
jest przestarzałe na poziomie API 8 i MATCH_PARENT
używa interfejsu API wyższego poziomu
Żeby nadać mu nazwę bliższą rzeczywistej akcji . "fill_parent"
nie wypełnia pozostałego miejsca, jak sugeruje nazwa (do tego celu służy atrybut wagi). Zamiast tego zajmuje tyle miejsca, ile jego układ macierzysty. Właśnie dlatego nowa nazwa to"match_parent"
Oba mają podobną funkcjonalność, z tą różnicą, że parametr fill_parent jest używany do poziomu API 8, a match_parent jest używany po poziomie API 8 lub wyższym.
Kiedy ustawisz układ width
i height
jak match_parent
we XML
właściwości, zajmie on cały obszar, który ma widok rodzica, tzn. Będzie tak duży jak rodzic.
<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>
Zając rodzic jest czerwony, a dziecko zielony. Dziecko zajmuje cały obszar. Ponieważ to jest width
i height
jest match_parent
.
Uwaga: Jeśli rodzic zastosuje padding, to miejsce nie zostanie uwzględnione.
<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>
Więc TextView wzrost = 300dp (wzrost rodzica) - (20 (paddingTop) +10 (paddingBottom)) = (300-30) dp = 270 dp
fill_parent
to poprzednia nazwa match_parent
W przypadku interfejsu API poziomu 8 i wyższego fill_parent
zmieniono jego nazwę na teraz match_parent
i fill_parent
jest przestarzałe.
Więc fill_parent
i match_parent
są takie same.
Widok powinien być tak duży jak jego rodzic (minus dopełnienie). Ta stała jest przestarzała, począwszy od poziomu API 8 i jest zastępowana przez {@code match_parent}.
match_parent, co oznacza, że widok chce być tak duży jak jego rodzic (minus dopełnienie).
wrap_content, co oznacza, że widok chce być na tyle duży, aby zamknąć jego zawartość (plus dopełnienie)
Dla lepszej ilustracji stworzyłem przykładowy układ, który demonstruje tę koncepcję. Aby zobaczyć jego efekt, dodałem obramowanie każdej zawartości textView.
W tekście „Dopasuj element nadrzędny” możemy zobaczyć szerokość jego układu rozłożoną na całej długości elementu nadrzędnego.
Ale możemy zobaczyć w tekście „Zawiń zawartość” Wyświetlanie zawartości, szerokość układu zawinięta w długość jego treści (Zawiń zawartość).
match_parent
i fill_parent
są tą samą właściwością, używaną do definiowania szerokości lub wysokości widoku na pełnym ekranie w poziomie lub w pionie.
Te właściwości są używane w takich plikach XML Androida.
android:layout_width="match_parent"
android:layout_height="fill_parent"
lub
android:layout_width="fill_parent"
android:layout_height="match_parent"
fill_parent
był używany w poprzednich wersjach, ale teraz jest przestarzały i zastąpiony przez match_parent
. Mam nadzieję, że ci to pomoże.
fill_parent: Widok powinien być tak duży jak jego element nadrzędny.
teraz ta treść fill_parent jest przestarzała i zastępowana przez match_parent.
Nazwa FILL_PARENT została przemianowana na MATCH_PARENT na poziomie API 8 i wyższym, co oznacza, że widok chce być tak duży jak jego rodzic (minus dopełnienie) - Google
FILL_PARENT
jest przestarzałe od poziomu API 8 i wyższego, a dla wyższych wersji zmieniono jego nazwę na MATCH_PARENT
Obie są takie same FILL_PARENT
i MATCH_PARENT
,FILL_PARENT
stosuje się w niższej wersji API mniejszej niż poziom 8 i MATCH_PATENT są stosowane w wyższych wyższego poziomu niż 8 API.
FILL_PARENT
(przemianowany MATCH_PARENT
na API Poziom 8 i wyższy), co oznacza, że widok chce być tak duży jak jego rodzic (minus dopełnienie)
fill_parent
: Widok powinien być tak duży jak jego rodzic (minus dopełnienie). Ta stała jest przestarzała, począwszy od poziomu API 8 i jest zastępowana przezmatch_parent
.
Aby uzyskać więcej informacji, odwiedź tę stronę
1. match_parent
Gdy ustawisz szerokość i wysokość układu jako match_parent, zajmie on cały obszar, który ma widok rodzica, tzn. Będzie tak duży jak rodzic.
Uwaga : Jeśli rodzic zastosuje padding, to miejsce nie zostanie uwzględnione.
Kiedy domyślnie tworzymy layout.xml, mamy RelativeLayout jako domyślny nadrzędny Widok z Androidem: layout_width = "match_parent" i android: layout_height = "match_parent", tj. Zajmuje całą szerokość i wysokość ekranu telefonu komórkowego.
Pamiętaj również, że wyściółka jest nakładana na wszystkie strony,
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
Teraz możemy dodać widok podrzędny LinearLayout i ustawia jego layout_width = "match_parent" i layout_height = "match_parent", widok graficzny wyświetlałby coś takiego,
match_parent_example
Kod
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:
Jest to to samo, co match_parent, fill_parent został amortyzowany na poziomie API 8, więc jeśli używasz API na poziomie 8 lub wyższym, musisz unikać używania fill_parent
Wykonajmy te same kroki, co w przypadku match_parent, po prostu użyj wszędzie fill_parent.
Zobaczysz, że nie ma różnicy w zachowaniu zarówno w rodzicach fill_parent, jak i match rodzic.