W Androidzie, kiedy układa się widżety, jaka jest różnica między fill_parent
( match_parent
na poziomie API 8 i wyższym) a wrap_content
?
Czy jest jakaś dokumentacja, na którą możesz wskazać? Chciałbym to bardzo dobrze zrozumieć.
android
layout
user-interface
pupeno
źródło
źródło
fill_parent
zmieniono jego nazwęmatch_parent
na API poziom 8 i wyższy.Odpowiedzi:
Każdy z atrybutów można zastosować do rozmiaru poziomego lub pionowego widoku (kontrola wizualna). Służy do ustawiania rozmiaru widoku lub układu na podstawie jego zawartości lub rozmiaru jego układu nadrzędnego, zamiast jawnego określania wymiaru.
fill_parent
(przestarzałe i przemianowaneMATCH_PARENT
na poziomie API 8 i wyższym)Ustawienie układu widżetu na wartość fill_parent zmusi go do rozwinięcia, aby zajął tyle miejsca, ile jest dostępne w elemencie układu, w którym został umieszczony. Jest to w przybliżeniu odpowiednik ustawienia stylu dokowania kontrolki formularzy systemu Windows na
Fill
.Ustawienie układu najwyższego poziomu lub kontrolki na fill_parent zmusi go do zajęcia całego ekranu.
wrap_content
Ustawienie rozmiaru Widoku na wartość wrap_content zmusi go do rozwinięcia się na tyle daleko, aby zawierał zawarte w nim wartości (lub kontrolki podrzędne). W przypadku elementów sterujących - takich jak pola tekstowe (TextView) lub obrazy (ImageView) - spowoduje to zawinięcie wyświetlanego tekstu lub obrazu. W przypadku elementów układu zmieni rozmiar układu, aby pasował do elementów sterujących / układów dodanych jako jego elementy potomne.
Jest to mniej więcej równowartość ustawienia
Autosize
właściwości Form Form Windows na True.Dokumentacja online
Jest kilka szczegółów w Android dokumentacji kodu tutaj .
źródło
fill_parent
(przestarzałe) =match_parent
Ramka widoku potomnego rozwija się, aby dopasować się do granicy widoku rodzica.
wrap_content
Obramowanie widoku potomnego otacza się ściśle wokół własnej zawartości.
Oto kilka zdjęć, aby wyjaśnić wszystko. Zielone i czerwone są
TextViews
. Biel jestLinearLayout
prześwitująca.Każdy
View
(aTextView
AnImageView
, AButton
, itd.) Musi ustawićwidth
iheight
zdania. W pliku układu xml może to wyglądać tak:Oprócz ustawienia szerokości i wysokości na
match_parent
lubwrap_content
, możesz również ustawić je na pewną wartość bezwzględną:Zasadniczo nie jest to jednak tak dobre, ponieważ nie jest tak elastyczne dla urządzeń różnej wielkości. Po zrozumieniu
wrap_content
imatch_parent
następnej rzeczy do nauczenia jestlayout_weight
.Zobacz też
XML dla powyższych obrazów
Pionowy układ liniowy
Poziomy układ liniowy
Uwaga
Wyjaśnienie w tej odpowiedzi zakłada, że nie ma marginesu ani wypełnienia . Ale nawet jeśli tak, podstawowa koncepcja jest nadal taka sama. Obramowanie / odstępy widoku są korygowane przez wartość marginesu lub wypełnienia.
źródło
fill_parent
sprawi, że szerokość lub wysokość elementu będzie tak duża, jak element macierzysty, innymi słowy, kontener.wrap_content
sprawi, że szerokość lub wysokość będzie tak duża, jak to konieczne, aby pomieścić zawarte w niej elementy.Kliknij tutaj, aby zobaczyć ANDROID DOC Reference
źródło
fill_parent
:Komponent ma ustawiony układ,
fill_parent
który będzie obowiązkowo rozwinąć, aby wypełnić elementy jednostki układu jak najwięcej w przestrzeni. Jest to zgodne z właściwością dockstyle kontrolki Windows. Najwyższy ustawiony układ lubfill_parent
element sterujący zmusi go do zajęcia całego ekranu.wrap_content
Skonfiguruj widok wielkości
wrap_content
będzie zmuszony do wyświetlenia jest rozwinięty, aby pokazać całą zawartość. Na przykład formanty TextView i ImageView są ustawione nawrap_content
wyświetlanie całego wewnętrznego tekstu i obrazu. Elementy układu zmienią rozmiar zgodnie z zawartością. Skonfiguruj widok wielkości atrybutu Autosize wwrap_content
przybliżeniu równoważny do ustawienia kontrolki Windows dla True.Aby uzyskać szczegółowe informacje, sprawdź ten link: http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
źródło