Jaký je rozdíl mezi fill_parent a wrap_content?

hlasů
240

V Android, když vzhled out widgety, jaký je rozdíl mezi fill_parent( match_parentv API Level 8 a vyšší) a wrap_content?

Je nějaká dokumentace, kde můžete poukázat na? Mám zájem o porozumění to velmi dobře.

Položena 11/01/2009 v 12:14
zdroj uživatelem
V jiných jazycích...                            


6 odpovědí

hlasů
240

Buď atribut může být aplikován na pohled je (vizuální kontrola) horizontální nebo vertikální velikosti. Používá se pro nastavení zobrazení nebo velikost Rozložení založené buď na jeho obsah nebo velikost je to rodič layout nikoli explicitně určující rozměr.

fill_parent(zastaralé a přejmenoval MATCH_PARENTv API Level 8 a vyšší)

Nastavení rozvržení widgetu fill_parent bude nutit, aby se rozšíří tak, aby se co nejvíce místa je k dispozici v rámci rozvržení prvku to bylo umístěné v. To je zhruba ekvivalent nastavení dockstyle o Windows Form Control až Fill.

Nastavení nejvyšší rozvržení úrovni nebo kontrolu fill_parent bude nutit, aby zabírají celou obrazovku.

wrap_content

Nastavení zobrazení je velikost, aby wrap_content bude nutit, aby se navýší jen natolik, aby obsahoval hodnoty (nebo podřízené ovládací prvky), které obsahuje. Pro ovládací prvky - jako jsou textová pole (TextView) nebo snímků (ImageView) - to se zalomí text nebo obrázek je znázorněno na obrázku. Pro uspořádání prvků bude velikost rozvržení, aby se vešly ovládacích prvků / rozvržení přidané jako jeho děti.

To je zhruba ekvivalent nastavení Windows Form Control Autosizevlastnost na hodnotu TRUE.

Online Dokumentace

Je tu některé detaily v Android kódu dokumentace zde .

Odpovězeno 11/01/2009 v 15:51
zdroj uživatelem

hlasů
52
  • FILL_PARENT(přejmenovaný MATCH_PARENTv API Level 8 a vyšší), což znamená, že View chce být stejně velká jako jeho rodič (minus padding)

  • WRAP_CONTENT, Což znamená, že View chce být jen dostatečně velká, aby přiložit svůj obsah (plus padding)

Odpovězeno 22/08/2010 v 04:43
zdroj uživatelem

hlasů
29

fill_parent(zastaralé) =match_parent
Hranice pohledu dítěte expanduje tak, aby odpovídala hranici nadřízeném pohledu.

wrap_content
Hranice pohledu dětské zábaly těsně kolem jeho vlastní obsah.

Zde jsou některé snímky, aby se více zřejmé věci. Zelená a červená jsou TextViews. Bílá je LinearLayoutzobrazeno pomocí.

zadejte popis obrázku zde

Každý View(a TextView, An ImageView, je Button, atd.), Je třeba nastavit widtha heightzastává názor. V souboru s rozložením xml, který může vypadat například takto:

android:layout_width="wrap_content"
android:layout_height="match_parent"

Kromě nastavení šířky a výšky se match_parentani wrap_content, můžete také nastavit na nějakou absolutní hodnoty:

android:layout_width="100dp"
android:layout_height="200dp"

Obecně platí, že není tak dobrá, i když, protože to není tak flexibilní pro různé velikosti zařízení. Poté, co jste pochopil wrap_contenta match_parent, další věc, kterou se učit je layout_weight.

viz též

XML pro výše uvedené obrázky

vertikální LinearLayout

<?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>

horizontální LinearLayout

<?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>

Poznámka

Vysvětlení v této odpovědi předpokládá, že neexistuje žádná rezerva nebo čalounění . Ale i v případě, že znamená, že základní koncept je stále stejný. Pohled hranice / rozteč je jen upravit hodnoty rozpětí nebo čalounění.

Odpovězeno 30/06/2015 v 18:01
zdroj uživatelem

hlasů
8
  • fill_parent bude šířka nebo výška prvku být stejně velká jako základní prvek, jinými slovy, kontejneru.

  • wrap_content učiní šířku nebo výšku být stejně velká jako potřeba, aby obsahovaly prvky uvnitř ní.

Klepněte na tlačítko tady pro Android DOC Odkaz

Odpovězeno 20/06/2013 v 07:11
zdroj uživatelem

hlasů
2

fill_parent :

Komponenta je uspořádán pro rozložení fill_parentbude povinné rozšířit naplnit členy rozvržení jednotky, stejně jako je to možné v prostoru. To je v souladu s dockstyle vlastnost ovládacího prvku Windows. Špičkový set rozvržení nebo kontrolu, aby fill_parentse ho donutit, aby zabírají celou obrazovku.

wrap_content

Nastavit zobrazení velikosti wrap_contentbude nucen sledovat, rozbalit a zobrazit veškerý obsah. Tyto TextView a ImageView ovládací prvky, například, je nastavena na hodnotu wrap_contentobjeví celý jeho vnitřní text a obrázek. Rozvržení prvky budou měnit velikost v závislosti na obsahu. Nastavit zobrazení velikosti AutoSize připisují wrap_contentzhruba odpovídá nastavení ovládání Windows pro Pravda.

Podrobnosti naleznete v Podívejte se na tento odkaz: http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

Odpovězeno 29/01/2015 v 08:53
zdroj uživatelem

hlasů
1

wrap_content nastavuje velikost za účelemminimum required to contain the contents it displays.

match_parent expands Viewto match the available space within the parent View, Fragment, or Activity.

Odpovězeno 11/06/2015 v 01:26
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more