Was ist in Android beim Layout von Widgets der Unterschied zwischen fill_parent
( match_parent
in API Level 8 und höher) und wrap_content
?
Gibt es eine Dokumentation, auf die Sie verweisen können? Ich bin daran interessiert, es sehr gut zu verstehen.
android
layout
user-interface
pupeno
quelle
quelle
fill_parent
Umbenennungmatch_parent
in API Ebene 8 und höher.Antworten:
Jedes Attribut kann auf die horizontale oder vertikale Größe der Ansicht (visuelle Steuerung) angewendet werden. Es wird verwendet, um eine Ansichts- oder Layoutgröße basierend auf dem Inhalt oder der Größe des übergeordneten Layouts festzulegen, anstatt explizit eine Dimension anzugeben.
fill_parent
(veraltet undMATCH_PARENT
in API Level 8 und höher umbenannt)Wenn Sie das Layout eines Widgets auf fill_parent setzen, wird es erweitert, um so viel Speicherplatz wie möglich innerhalb des Layoutelements zu belegen, in dem es platziert wurde. Dies entspricht in etwa dem Festlegen des Dockstils eines Windows Form-Steuerelements auf
Fill
.Wenn Sie ein Layout oder Steuerelement der obersten Ebene auf fill_parent setzen, wird der gesamte Bildschirm eingenommen.
wrap_content
Wenn Sie die Größe einer Ansicht auf wrap_content festlegen, wird sie nur so weit erweitert, dass sie die darin enthaltenen Werte (oder untergeordneten Steuerelemente) enthält. Bei Steuerelementen wie Textfeldern (TextView) oder Bildern (ImageView) wird der angezeigte Text oder das umgebrochene Bild umgebrochen. Bei Layoutelementen wird die Größe des Layouts an die Steuerelemente / Layouts angepasst, die als untergeordnete Elemente hinzugefügt wurden.
Dies entspricht in etwa dem Festlegen der
Autosize
Eigenschaft eines Windows Form Control auf True.Online-Dokumentation
Es gibt einige Details im Android Code - Dokumentation hier .
quelle
fill_parent
(veraltet) =match_parent
Der Rand der untergeordneten Ansicht wird erweitert und entspricht dem Rand der übergeordneten Ansicht.
wrap_content
Der Rand der untergeordneten Ansicht umschließt eng den eigenen Inhalt.
Hier sind einige Bilder, um die Dinge klarer zu machen. Das Grün und Rot sind
TextViews
. Das Weiß ist einLinearLayout
Durchscheinen.Jeder
View
(aTextView
, anImageView
, aButton
usw.) muss daswidth
und dasheight
der Ansicht einstellen . In der XML-Layoutdatei könnte dies folgendermaßen aussehen:Neben der Einstellung von Breite und Höhe auf
match_parent
oderwrap_content
können Sie auch einen absoluten Wert festlegen:Im Allgemeinen ist dies jedoch nicht so gut, da es für Geräte unterschiedlicher Größe nicht so flexibel ist. Nachdem Sie verstanden haben ,
wrap_content
undmatch_parent
ist das nächste , was zu lernenlayout_weight
.Siehe auch
XML für obige Bilder
Vertikales lineares Layout
Horizontales lineares Layout
Hinweis
Bei der Erklärung in dieser Antwort wird davon ausgegangen, dass kein Rand oder keine Polsterung vorhanden ist . Aber selbst wenn ja, ist das Grundkonzept immer noch dasselbe. Der Ansichtsrand / -abstand wird nur durch den Wert des Randes oder der Auffüllung angepasst.
quelle
fill_parent
Dadurch wird die Breite oder Höhe des Elements so groß wie das übergeordnete Element, dh der Container.wrap_content
Dadurch wird die Breite oder Höhe so groß wie erforderlich, um die darin enthaltenen Elemente aufzunehmen.Klicken Sie hier für die ANDROID DOC-Referenz
quelle
fill_parent
::Ein Komponentenlayout ist so angeordnet
fill_parent
, dass es erweitert werden muss, um die Elemente der Layouteinheit so weit wie möglich im Raum zu füllen. Dies stimmt mit der Dockstyle-Eigenschaft des Windows-Steuerelements überein. Ein Top-Set-Layout oder Steuerelementfill_parent
erzwingt, dass es den gesamten Bildschirm einnimmt.wrap_content
Das Einrichten einer Ansicht mit der Größe von
wrap_content
wird zur Anzeige gezwungen und erweitert, um den gesamten Inhalt anzuzeigen. Mit den TextView- und ImageView- Steuerelementen wird beispielsweisewrap_content
der gesamte interne Text und das gesamte Bild angezeigt. Layoutelemente ändern die Größe je nach Inhalt. Richten Sie eine Ansicht der Größe des Autosize-Attributs ein, die inwrap_content
etwa dem Festlegen eines Windows-Steuerelements für True entspricht.Weitere Informationen finden Sie unter folgendem Link: http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
quelle