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 Unterlagen, auf die Sie verweisen können? Ich bin daran interessiert, es sehr gut zu verstehen.
Puppe
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 Unterlagen, auf die Sie verweisen können? Ich bin daran interessiert, es sehr gut zu verstehen.
Reto Meier
Jedes Attribut kann auf die horizontale oder vertikale Größe von View (visuelle Kontrolle) angewendet werden. Es wird verwendet, um eine Ansichts- oder Layoutgröße entweder basierend auf seinem Inhalt oder der Größe seines übergeordneten Layouts festzulegen, anstatt explizit eine Dimension anzugeben.
fill_parent
(veraltet und umbenannt MATCH_PARENT
in API Level 8 und höher)
Das Festlegen des Layouts eines Widgets auf fill_parent zwingt es zu erweitern, um so viel Platz einzunehmen, wie innerhalb des Layoutelements verfügbar ist, in dem es platziert wurde. Dies entspricht ungefähr dem Festlegen des Dockstils eines Windows Form-Steuerelements Fill
.
Wenn Sie ein Layout oder Steuerelement der obersten Ebene auf fill_parent setzen, wird es gezwungen, den gesamten Bildschirm einzunehmen.
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 dadurch der angezeigte Text oder das angezeigte Bild umbrochen. Bei Layoutelementen wird die Größe des Layouts angepasst, um es an die als untergeordnete Elemente hinzugefügten Steuerelemente / Layouts anzupassen.
Dies entspricht ungefähr dem Festlegen eines Windows Form-Steuerelements Autosize
Eigenschaft auf True.
Online-Dokumentation
Es gibt einige Details in der Android-Code-Dokumentation Hier.
Was ist, wenn die Bildbreite größer als die Bildschirmbreite ist und ich die Bildansichtsbreite als fill_parent setze? Wird das Bild auf Bildschirmgröße komprimiert?
– John Watson
10. August 12 um 11:18 Uhr
@JohnWatson hast du deine Antwort gefunden? Ich bin auch neugierig.
– Rachel
18. September 15 um 16:48 Uhr
Es ist gut, die erwähnten äquivalenten Eigenschaften von Windows Form Control zu kennen.
– Rempelos
25. Januar 16 um 2:46 Uhr
Was hast du gesehen @JohnWatson ? Was ist deine Geschichte ? Was ist die Antwort ?
– Hoffentlich Hilfreich
18. August 16 um 11:29 Uhr
Suragch
fill_parent
(veraltet) = match_parent
Der Rahmen der untergeordneten Ansicht wird so erweitert, dass er mit dem Rahmen der übergeordneten Ansicht übereinstimmt.
wrap_content
Der Rahmen der untergeordneten Ansicht legt sich eng um seinen eigenen Inhalt.
Hier sind einige Bilder, um die Dinge klarer zu machen. Grün und Rot sind TextViews
. Das Weiß ist ein LinearLayout
durchscheinen.
Jeden View
(ein TextView
ein ImageView
ein Button
etc.) muss eingestellt werden width
und das height
der Ansicht. In der XML-Layoutdatei könnte das so aussehen:
android:layout_width="wrap_content"
android:layout_height="match_parent"
Neben der Einstellung der Breite und Höhe zu match_parent
oder wrap_content
Sie könnten sie auch auf einen absoluten Wert setzen:
android:layout_width="100dp"
android:layout_height="200dp"
Im Allgemeinen ist das aber nicht so gut, weil es nicht so flexibel für unterschiedlich große Geräte ist. Nachdem Sie verstanden haben wrap_content
und match_parent
ist das nächste, was zu lernen ist layout_weight
.
Vertikales lineares Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=wrap height=wrap"
android:background="#c5e1b0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=match height=wrap"
android:background="#f6c0c0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="width=match height=match"
android:background="#c5e1b0"/>
</LinearLayout>
Horizontales lineares Layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="WrapWrap"
android:background="#c5e1b0"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="WrapMatch"
android:background="#f6c0c0"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="MatchMatch"
android:background="#c5e1b0"/>
</LinearLayout>
Die Erklärung in dieser Antwort geht davon aus, dass es keinen Rand oder Auffüllung gibt. Aber selbst wenn es das gibt, ist das Grundkonzept immer noch dasselbe. Der Ansichtsrand/-abstand wird nur um den Wert des Rands oder der Auffüllung angepasst.
Devrath
fill_parent
macht die Breite oder Höhe des Elements so groß wie das übergeordnete Element, also den Container.
wrap_content
macht die Breite oder Höhe so groß wie nötig, um die darin enthaltenen Elemente aufzunehmen.
Was wird der Behälter sein? Wie kann man die Ansichten mit verschiedenen Containern umgeben?
– Tejzeratul
11. Mai ’16 um 15:00 Uhr
fill_parent
:
Eine Komponente ist Layout für die angeordnet fill_parent
wird obligatorisch zu erweitern, um die Elemente der Layouteinheit so weit wie möglich im Raum zu füllen. Dies steht im Einklang mit der Dockstyle-Eigenschaft des Windows-Steuerelements. Ein Top-Layout oder eine Steuerung dazu fill_parent
wird es zwingen, den gesamten Bildschirm einzunehmen.
wrap_content
Richten Sie eine Ansicht der Größe ein wrap_content
gezwungen wird, anzuzeigen, wird erweitert, um den gesamten Inhalt anzuzeigen. Der TextView und ImageView beispielsweise auf eingestellt ist wrap_content
zeigt den gesamten internen Text und das gesamte Bild an. Layoutelemente ändern die Größe entsprechend dem Inhalt. Richten Sie eine Ansicht der Größe des Autosize-Attributs ein wrap_content
entspricht in etwa dem Setzen eines Windows-Steuerelements auf True.
Einzelheiten entnehmen Sie bitte diesem Link: http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html
.
Beachten Sie, dass die
fill_parent
wurde umbenanntmatch_parent
in API-Level 8 und höher.– gfrigon
22. Juni 2012 um 18:20 Uhr