Android开发之详解五大布局

来源:互联网 发布:dnf每隔几分钟网络中断 编辑:程序博客网 时间:2024/05/29 18:29

为了适应各式各样的界面风格,Android系统提供了5种布局,这5种布局分别是:

 

LinearLayout(线性布局)

 

TableLayout(表格布局)

 

RelativeLayout(相对布局)

 

AbsoluteLayout(绝对布局)

 

FrameLayout(框架布局)

 

利用这五种布局,可以在屏幕上将控件随心所欲的摆放,而且控件的大小和位置会随着屏幕大小的变化作出相应的调整。下面是这五个布局在View的继承体系中的关系:

1.jpg


在一个方向上(垂直或水平)对齐所有子元素

一个垂直列表每行将只有一个子元素(无论它们有多宽)

一个水平列表只是一列的高度(最高子元素的高度来填充)

 

下面是一个简单的线性布局的例子:

 

2.png

 

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"> <EditTextandroid:text="EditText"android:id="@+id/editText1"android:layout_height="wrap_content"android:layout_width="fill_parent"> </EditText> <LinearLayoutandroid:id="@+id/linearLayout1"android:layout_height="fill_parent"android:layout_width="fill_parent"android:gravity="right"> <Buttonandroid:id="@+id/button2"android:text="Button"android:layout_width="wrap_content"android:layout_height="wrap_content"></Button> <Buttonandroid:text="Button"android:id="@+id/button1"android:layout_width="wrap_contentandroid:layout_height="wrap_content"></Button></LinearLayout> </LinearLayout>


 

最外层布局为垂直线性布局,宽度为整个屏幕(fill_parent),高度为刚好适合子控件(wrap_content)。然后依次添加一个EditText,一个水平布局的LinearLayout,在这个线性布局里面,摆放两个Button,该线性布局的gravity属性设置为”right”,所以里面的两个Button靠右显示。


 

下面介绍一下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                 离某元素上边缘的距离

 

来自 <http://bbs.chinaunix.net/thread-3654213-1-1.html

0 0
原创粉丝点击