我不明白属性的含义layout_alignWithParentIfMissing
。TextView
我阅读了以下文档:
android:layout_alignWithParentIfMissing
layout_toLeftOf
如果设置为 true,则在,layout_toRightOf
等无法找到锚点时,将使用父级作为锚点。
必须是布尔值,要么true
要么false
。
请给我解释一下。
我不明白属性的含义layout_alignWithParentIfMissing
。TextView
我阅读了以下文档:
android:layout_alignWithParentIfMissing
layout_toLeftOf
如果设置为 true,则在,layout_toRightOf
等无法找到锚点时,将使用父级作为锚点。
必须是布尔值,要么true
要么false
。
请给我解释一下。
这仅在使用 RelativeLayout 时适用。
如果您将元素设置为 toLeftOf 某个其他元素,则意味着它将位于该元素的左侧。
但是如果这个元素会丢失,例如你删除它,它将与父元素对齐。
举这个例子
<?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 将相对于父元素定位元素,而不是它应该是的元素,因为它丢失了。
如果它是假的,与缺失元素有关的参数将被忽略。
另一个样本。我刚用过。
<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”文本视图的行为就像拥有 android:layout_alignParentRight="true" 属性。
在相对布局中,可以相对于另一个 View 指定 View 的位置。
标签layout_toLeftOf和layout_toRightOf相对于“锚”视图对象定位视图。当缺少此锚视图时,标签alignWithParentIfMissing会将您的视图与父视图对齐。