2013-05-23 9 views
19

Non capisco il significato di layout_alignWithParentIfMissing per l'attributo TextView.Difficoltà a capire layout_alignWithParentIfMissing

ho letto il seguente documentation:

android:layout_alignWithParentIfMissing

Se impostata su true, il genitore verrà utilizzato come l'ancora quando l'ancora non si può essere trovato per layout_toLeftOf, layout_toRightOf, ecc

Deve essere un valore booleano, true o false.

Per favore, spiegami.

risposta

24

Questo si applica solo quando si utilizza RelativeLayout.

Se si imposta l'elemento su Left di un altro elemento, significa che si troverà a sinistra di questo elemento.

Ma se questo elemento sarà mancante, perché lo si elimina ad esempio sarà allineato al genitore.

Prendete questo esempio

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

vedere cosa succede se si elimina textView1 ma non toccare textView2.

andrà verso il basso, a sinistra (non proprio perché si trova all'interno di un genitore)

Android posizionerà elemento rispetto al genitore, invece di elemento dovrebbe essere perché manca.

Se è falso, i parametri relativi agli elementi mancanti verranno ignorati.

+0

Param di layout non valido in TextView: layout_alignWithParentIfMissing - questo errore è in arrivo – vhd

+0

Sì! Ha funzionato :) – vhd

0

In Layout relativi, la posizione di una vista può essere specificata in relazione ad un'altra vista.

I tag layout_toLeftOf e layout_toRightOf posizione della vista rispetto ad un oggetto vista 'ancora'. Quando manca questa vista di ancoraggio, il tag alignWithParentIfMissing allinea la visualizzazione con la visualizzazione padre.

2

Un altro campione. Ho appena usato.

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

se "streamOverflow" manca "delete_time" TextView si comporta come avere Android: layout_alignParentRight = "true" proprietà.

Problemi correlati