Android中的RelativeLayout中组件的排放问题
今天想仿照新浪微博的用户中心
主要就是那个头像的问题,这个看到就想到用相对布局,现在是我想把那个名称放到头像的上面去xml中定义如下:
<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/user_info_head_wallpager"> <ImageView android:id="@+id/user_info_head_avatar" android:layout_width="74dip" android:layout_height="74dip" android:background="@drawable/avatar_background" /> <TextView android:id="@+id/user_info_head_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/user_info_head_avatar" android:text="dskhdks" android:textColor="#FFFFFF" android:textSize="19sp" android:textStyle="bold" android:background="#ff567890" /> </RelativeLayout>
这样看一点问题都没有,但是看一下效果图,那个TextView就是不显示,使用了各种办法找错误,都没有效果,最后查了好多资料才找到原因,就是RelativeLayout中添加组件额顺序要和显示的顺序一样,所以把ImageView和TextView两个换了个位置,在ImageView中使用layout_below属性然后就没有问题了
而且在这个过程中还发现一个问题就是Android中的一个特性:XML布局文件中id的获取是从上往下获取的,所以如果你在一个组件之前使用到他的id,这时会出现意想不到的错误.
最后附上RelativeLayout中关于位置的设置属性详解:
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐