【Android】 LinearLayout和RelativeLayout

1、 首先我们来看一下LinearLayout与RelativeLayout布局属性对比:
       共有属性:
控件名称    

android:id=”@+id/btn1″

控件宽度

android:layout_width=”80px” //”80dip”或”80dp” 

android:layout_width =“wrap_content”

android:layout_width =“match_parent” 

控件高度

android:layout_height=”80px” //”80dip”或”80dp”

android:layout_height =“wrap_content”

android:layout_height =“match_parent”

控件排布

android:orientation=”horizontal”

android:orientation=”vertical“

控件间距

android:layout_marginLeft=”5dip” //距离左边 

android:layout_marginRight=”5dip” //距离右边

android:layout_marginTop=”5dip” //距离上面

android:layout_marginRight=”5dip” //距离下面

android:paddingLeft=”5dip” 控件显示位置

android:gravity=”center” //left,right, top, bottom 

android:gravity=”center_horizontal”

android:layout_gravity是本元素对父元素的重力方向。

android:layout_gravity属性则设置控件本身相对于父控件的显示位置

android:gravity是本元素所有子元素的重力方向。

android:layout_gravity=”center_vertical”

android:layout_gravity=”left”

android:layout_gravity=”left|bottom”


TextView中文本字体

android:text=”@String/text1″ //在string.xml中定义text1的值 

android:textSize=”20sp” android:textColor=”#ff123456”

android:textStyle=”bold” //普通(normal), 斜体(italic),粗斜体(bold_italic)

TextView中,控制其以…结束

android:ellipsize=”end”

只有一行

android:singleLine=”true”

定义控件是否可见

android:visibility=”visible” //可见 

android:visibility=”invisible”  //不可见,但是在布局中占用的位置还在

android:visibility=”gone”   //不可见,完全从布局中消失

定义背景图片

android:background=”@drawable/img_bg” //img_bg为drawable下的一张图片

seekbar控件背景图片及最大值

android:progressDrawable=”@drawable/seekbar_img” 

android:thumb=”@drawable/thumb” 

android:max = “60″

android:layout_alignWithParentIfMissing=”true”

仅在RelativeLayout中有效:

在父亲布局的相对位置

android:layout_alignParentLeft=”true” //在布局左边 

android:layout_alignParentRight=”true” //在布局右边 

android:layout_alignParentTop=”true” //在布局上面 

android:layout_alignParentBottom=”true “ //在布局的下面

在某个控件的相对位置

android:layout_toRightOf=”@id/button1″ //在控件button1的右边,不仅仅是紧靠着 

android:layout_toLeftOf=”@id/button1″ //在控件button2的左边,不仅仅是紧靠着 

android:layout_below=”@id/button1 “ //在控件button1下面,不仅仅是正下方 

android:layout_above=“@id/button1” //在控件button1下面,不仅仅是正下方

定义和某控件对奇

android:layout_alignTop=”@id/button1” //和控件button1上对齐 

android:layout_alignBottom=”@id/button1” //和控件button1下对齐 

android:layout_alignLeft=”@id/button1” //和控件button1左对齐 

android:layout_alignRight=”@id/button1” //和控件button2右对齐

android:layout_centerHorizontal=”true” //水平居中 

android:layout_centerVertical=”true”

android:layout_centerInParent=”true” 


仅在LinearLayout中有效

设置控件在一排或一列中所占比例值

android:layout_weight=”1″

2、如何理解Android中LinearLayout和RelativeLayout几个概念:

padding margin都是边距的含义,关键问题得明白是什么相对什么的边距
padding是控件的内容相对控件的边缘的边距
margin是控件边缘相对父控件的边距

android:gravity 属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个. 

android:layout_gravity是用来设置该view中的子view相对于父view的位置.比如一个button 在linearlayout里,你想把该button放在靠左,靠右等位置就可以在linearlayout中通过该属性设置.

            3、RelativeLayout重要的属性(转载其它博文)

第一类:属性值为true或false

    android:layout_centerHrizontal                                           水平居中

    android:layout_centerVertical                                            垂直居中

    android:layout_centerInparent                                           相对于父元素完全居中

    android:layout_alignParentBottom                                     贴紧父元素的下边缘

    android:layout_alignParentLeft                                          贴紧父元素的左边缘

    android:layout_alignParentRight                                        贴紧父元素的右边缘

    android:layout_alignParentTop                                          贴紧父元素的上边缘

    android:layout_alignWithParentIfMissing                            如果对应的兄弟元素找不到的话就以父元素做参照物

第二类:属性值必须为id的引用名“@id/id-name

    android:layout_below                          在某元素的下方

    android:layout_above                          在某元素的的上方

    android:layout_toLeftOf                       在某元素的左边

    android:layout_toRightOf                     在某元素的右边

    android:layout_alignTop                      本元素的上边缘和某元素的的上边缘对齐

    android:layout_alignLeft                      本元素的左边缘和某元素的的左边缘对齐

   android:layout_alignBottom                 本元素的下边缘和某元素的的下边缘对齐

   android:layout_alignRight                    本元素的右边缘和某元素的的右边缘对齐

第三类:属性值为具体的像素值,如30dip,40px

    android:layout_marginBottom              离某元素底边缘的距离

    android:layout_marginLeft                   离某元素左边缘的距离

    android:layout_marginRight                 离某元素右边缘的距离

    android:layout_marginTop                   离某元素上边缘的距离


上一篇:[置顶]


下一篇:docker部署gitlab-runner