难以理解layout_alignWithParentIfMissing

我不明白的TextView属性layout_alignWithParentIfMissing的含义。

我读了下面的文档 :

android:layout_alignWithParentIfMissing

如果设置为true,当无法findlayout_toLeftOflayout_toRightOf等的锚点时,父级将用作锚点。

必须是布尔值,无论是true还是false

请给我解释一下。

Solutions Collecting From Web of "难以理解layout_alignWithParentIfMissing"

这仅适用于使用RelativeLayout的情况。

如果将元素设置为toLeftOf其他元素,则表示它将位于此元素的左侧。

但是,如果这个元素将会丢失,因为你将它删除,例如它将会与父alignment。

以这个例子

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

看看会发生什么如果你删除textView1但不要触摸textView2。

它会在左下方(不是正确的,因为它在父母的内部)

Android将定位元素相对于父元素,而不是它应该是因为它是缺less的元素。

如果这是错误的参数有关缺less的元素将被忽略。

另一个样本。 我刚刚用过。

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

如果“streamOverflow”缺失,“delete_time”textview的行为就像有android:layout_alignParentRight =“true”属性。

在相对布局中,可以相对于另一个视图指定视图的位置。

标签layout_toLeftOflayout_toRightOf将视图相对于“锚点”视图对象定位。 当这个锚点视图丢失时,标记alignWithParentIfMissing将使您的视图与父视图alignment。