关于Linearlayout中控件设置为其底部的问题,android:layout_gravity="bottom"没效果

昨天在做项目的时候遇到一个问题。布局文件中父布局为Linearlayout,宽度: android:layout_width="match_parent";高度:android:layout_height="match_parent",然后父布局中有一个RelativeLayout,我想把这个RelativeLayout放在父布局中的底部,于是添加了:android:layout_gravity="bottom",但是发现并没有效果,然后查了一下资发现:

当 android:orientation="vertical"  时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
当 android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。


知道原因后还要想办法解决,于是想到了weight,然后这样设置RelativeLayout的属性:

        android:layout_height="0dp"
        android:layout_weight="1"

发现问题解决了!

不过要提醒的是,父布局的高度必须为"match_parent",这样weight才会有效果。


设置好之后发现RelativeLayout确实是在底部,但是里面的内容还是在RelativeLayout的上面,也就是说显示效果还和之前的一样,不过这个很好解决,只需设置RelativeLayout的gravity为bottom: android:gravity="bottom",这样就解决了!完美...





你可能感兴趣的:(Android)