layout_gravity:指的是自己对于自己爸爸容器中的位置;
gravity:指的是设置自己儿子的位置;
因为RelativeLayout布局中默认儿子们都是左上角覆盖排布,所以其中儿子们的layout_gravity属性无法使用。但是别灰心!!还有layout_centerVertical,_centerHorizontal,_centerInParent三个属性来设置自己在爸爸容器中的位置。
在RelativeLayout中,如果光去设置内部空间layout_marginbottom值和layout_marginright值是不会生效的,因为RelativeLayout默认是左上角排布,只有将其gravity设置为gravity="bottom",layout_marginbottom才会生效;将gravity设置为right,layout_marginright会生效;同时设置的话,两个属性值都有用; 或者在子view中设置android:layout_alignParentRight="true" ,这样就能让marginright生效
同理LinearLayout也是,只是说对它的布局而言,默认排布不是左上角,但是锚点是在左上角,所以也是同RelativeLayout一样,要设置gravity="bottom"right,才会生效
问题一
xml中需要有一个满屏的listview,但是也要求有底部导航栏 实现方法
以前的实现方法是,在测试机中先将listview的高度设为某一特定值,底下剩下的高度可以放下底部导航栏;
这样的话可能会因为手机的不同导致ui有差异;
最近看到一个实现方法:
先将listview的weight设置为1;
那么留下剩余的高度就是底部导航栏的高度(底部导航栏一定要设置具体高度数值):
因为如果LinearLayout中的某一控件A的高的权重设为1,那么代表着这个控件在其他控件占好位置之后,剩下的高就全是控件A占着
实现的效果:
问题二:
组长给的一个测试:要用线性布局和相对布局分别实现下面一行效果,这一行中有三个按钮,每个相隔10dp。高度不做考虑,即可为一个具体数值。除了中间按钮没有具体宽 为wrap_content,其他两个宽都是20dp。
LinearLayout:(注意中间btn将weight设置为1,即可占满剩余空间)
RelativeLayout:(在中间btn未设置具体数值宽度之前,想占满整个剩下的空间,需要在左边控件的右边torightof 同时在右边控件的左边toleftof,这样才能拉大中间的btn长度)
Q3: android中 有textview在布局中居右展示以及文本靠右对齐
android:textAlignment="viewStart"
android:textDirection="rtl"
android:gravity="right"