Was ist der Unterschied zwischen fill_parent und wrap_content?

Lesezeit: 5 Minuten

Was ist der Unterschied zwischen fill parent und wrap content
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.

  • Beachten Sie, dass die fill_parent wurde umbenannt match_parent in API-Level 8 und höher.

    – gfrigon

    22. Juni 2012 um 18:20 Uhr

1643912587 449 Was ist der Unterschied zwischen fill parent und wrap content
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


1643912587 951 Was ist der Unterschied zwischen fill parent und wrap content
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.

Geben Sie hier die Bildbeschreibung ein

Jeden View (ein TextViewein ImageViewein Buttonetc.) 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_contentSie 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_parentist das nächste, was zu lernen ist layout_weight.

Siehe auch

  • Was bedeutet android:layout_weight?
  • Unterschied zwischen Padding und Margin einer Ansicht
  • Schwerkraft vs. layout_gravity

XML für obige Bilder

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>

Notiz

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.

Was ist der Unterschied zwischen fill parent und wrap content
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.

Klicken Sie hier für die ANDROID DOC-Referenz

  • 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

.

758600cookie-checkWas ist der Unterschied zwischen fill_parent und wrap_content?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy