android:layout_below位置到底below到哪儿了?
android:layout_below
是RelativeLayout的一个属性,其官方解释如下:
—Positions the top edge of this view below the given anchor view ID and must be a reference to another resource, in the form "@[+][package:]type:name"
我理解就是:将当前控件的顶部置于给定ID的控件之下,并且两控件应该对齐。然而事实证明我又傻傻的天真了T_T...
layout_blew.xml布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
布局的初衷是想在同一个RelativeLayout中将“机建”放在第二栏:
刚开始以“东航旗舰店”为参照,使用属性android:layout_below="@+id/banner_text"
,但由于“东航旗舰店”是动态显示的,有时候VISIBLE,有时候GONE(此时android:layout_below
就找不到参照了,“机建”就会与第一栏重合),要实现正常显示就只能以“经济舱”为参照,使用android:layout_below="@+id/seat_space"
。可是基于对android:layout_below
属性的理解,用了觉得结果会是下面这样的(其实又添加了android:layout_alignLeft
属性才是下面的效果):
结果试了才知道真心错了,android:layout_below="@+id/seat_space"
,只要控件seat_space(经济舱)不设为GONE,也无论“经济舱”位置在哪儿,"机建"都会在“经济舱”的下面一排的最左边(前提是“机建”没有设置其他对齐属性)。
总结:
-
android:layout_below
属性会将当前控件的顶部置于给定ID的控件之下,但并不会与给定ID的控件对齐,默认会放在父控件的最左边; - 可通过
android:layout_alignLeft
、android:layout_alignRight
等对齐属性改变当前控件设置android:layout_below
属性后的默认位置,RelativeLayout的具体其他属性点这里。
更多相关文章
- 8. android Tab 选项卡控件
- Android(安卓)监听软键盘显示和隐藏
- android 界面应用锦集
- 【LatinIME】默认开启键盘按键声
- Android:时间控件
- Android各种花式酷炫自定义控件开源库集合(1)。
- Android控件开发之Gallery
- android View的三个构造方法 简单总结
- Android(安卓)Widget开发