2013-05-23 13 views
19

Nie rozumiem znaczenia layout_alignWithParentIfMissing dla atrybutu TextView.Trudności ze zrozumieniem layout_alignWithParentIfMissing

czytam następujące documentation:

android:layout_alignWithParentIfMissing

Jeśli ma wartość true, rodzic będzie używany jako kotwicy gdy kotwica nie można znaleźć dla layout_toLeftOf, layout_toRightOf itp

Musi to być wartość boolowska: true lub false.

Proszę mi wyjaśnić.

Odpowiedz

24

Dotyczy to tylko korzystania z RelativeLayout.

Jeśli ustawisz element, który ma być LeftOf, inny element, oznacza to, że będzie po lewej stronie tego elementu.

Ale jeśli ten element będzie nieobecny, ponieważ zostanie usunięty, na przykład będzie wyrównany do rodzica.

Weźmy przykład ten

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="102dp" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignWithParentIfMissing="true" 
     android:layout_alignBottom="@+id/textView1" 
     android:layout_toRightOf="@+id/textView1" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

</RelativeLayout> 

zobaczyć, co się dzieje, jeśli usuniesz textView1 ale nie dotykaj textView2.

To pójdzie na dno, na lewo (nie w porządku, ponieważ jest wewnątrz rodzica)

Android będzie umieszczenie elementu w stosunku do rodziców, a nie elementem powinno być, ponieważ brakuje.

W przypadku nieprawidłowości parametry związane z brakującymi elementami zostaną zignorowane.

+0

Nieprawidłowy parametr układu w TextView: layout_alignWithParentIfMissing - ten błąd nadchodzi – vhd

+0

Tak! Zadziałało :) – vhd

0

We Względnych układach położenie widoku można określić względem innego widoku.

Znaczniki layout_toLeftOf i layout_toRightOf pozycji widok względne do kotwicy widok przedmiotu. Jeśli brakuje tego widoku zakotwiczenia, znacznik zostanie wyrównany do widoku nadrzędnego.

2

Kolejna próbka. Właśnie użyłem.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="6dip" > 

    <Button 
     android:id="@+id/streamOverflow" 
     android:layout_width="50dp" 
     android:layout_height="30dp" 
     android:layout_alignParentRight="true" 
     android:background="@drawable/ic_action_overflow" 
     android:focusable="false" /> 

    <TextView 
     android:id="@+id/delete_time" 
     style="?android:attr/textAppearanceSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Disappears " 
     android:layout_toLeftOf="@id/streamOverflow" 
     android:layout_alignWithParentIfMissing="true" 
    /> 
</RelativeLayout> 

jeśli "streamOverflow" brakuje "delete_time" TextView zachowuje się jak o android: layout_alignParentRight = "true" mienia.

Powiązane problemy