针对RelativeLayout有一点需要注意,因为它内部是通过多
个View之间的关系而确定的框架,那么当其中某一个View因为某些需要调用
GONE
来完全隐藏掉后,会影响与其相关联的Views。Android为我们提供了一个属性
alignWithParentIfMissing
用于解决类似问题,当某一个View无法找到与其相关联 的Views后将依据
alignWithParentIfMissing
的设定判断是否与父级View对齐。
参考代码:
- <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" -
android:layout_width="fill_parent" -
android:layout_height="?android:attr/listPreferredItemHeight" -
-
android:padding="6dip"> -
-
<ImageView -
android:id="@+id/icon" -
-
android:layout_width="wrap_content" -
android:layout_height="fill_parent" -
-
android:layout_alignParentTop="true" -
android:layout_alignParentBottom="true" -
android:layout_marginRight="6dip" -
-
android:src="@drawable/icon" /> -
-
<TextView -
android:id="@+id/secondLine" -
-
android:layout_width="fill_parent" -
android:layout_height="26dip" -
-
android:layout_toRightOf="@id/icon" -
android:layout_alignParentBottom="true" -
android:layout_alignParentRight="true" -
-
android:singleLine="true" -
android:ellipsize="marquee" -
android:text="Simple application that shows how to use RelativeLayout" /> -
-
<TextView -
android:layout_width="fill_parent" -
android:layout_height="wrap_content" -
-
android:layout_toRightOf="@id/icon" -
android:layout_alignParentRight="true" -
android:layout_alignParentTop="true" -
android:layout_above="@id/secondLine" -
android:layout_alignWithParentIfMissing ="true" -
-
android:gravity="center_vertical" -
android:text="My Application" /> -
- </RelativeLayout>