Android SDK Tutorials系列 - Hello Views - Linear Layout
Android SDK Tutorials系列 - Hello Views - Linear Layout
LinearLayout
是 ViewGroup
的一种,里面包含的View按线性方式排列,要么垂直方向,要么水平方向。
不要过度使用LinearLayout。如果你开始嵌套使用LinearLayout,那也许你应该考虑使用RelativeLayout了。
- 创建一个工程:HelloLinearLayout
- 打开
res/layout/main.xml
,修改内容如下:- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_weight="1">
- <TextView
- android:text="red"
- android:gravity="center_horizontal"
- android:background="#aa0000"
- android:layout_width="wrap_content"
- android:layout_height="fill_parent"
- android:layout_weight="1"/>
- <TextView
- android:text="green"
- android:gravity="center_horizontal"
- android:background="#00aa00"
- android:layout_width="wrap_content"
- android:layout_height="fill_parent"
- android:layout_weight="1"/>
- <TextView
- android:text="blue"
- android:gravity="center_horizontal"
- android:background="#0000aa"
- android:layout_width="wrap_content"
- android:layout_height="fill_parent"
- android:layout_weight="1"/>
- <TextView
- android:text="yellow"
- android:gravity="center_horizontal"
- android:background="#aaaa00"
- android:layout_width="wrap_content"
- android:layout_height="fill_parent"
- android:layout_weight="1"/>
- </LinearLayout>
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_weight="1">
- <TextView
- android:text="row one"
- android:textSize="15pt"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"/>
- <TextView
- android:text="row two"
- android:textSize="15pt"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"/>
- <TextView
- android:text="row three"
- android:textSize="15pt"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"/>
- <TextView
- android:text="row four"
- android:textSize="15pt"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"/>
- </LinearLayout>
- </LinearLayout>
仔细查看这个XML,最外层是一个LinearLayout,它的android:orientation属性被设置为"vertical",意味着它包含的View(一共两个)按照垂直方向排列。它包含的第一个View是另一个LinearLayout,这个LinearLayout使用水平排列方式;包含的第二个LinearLayout使用垂直排列方式。两个内部的LinearLayout都包含了几个TextView,这些TextView都按照包含他们的LinearLayout规定的方式排列着。
- 现在打开
HelloLinearLayout.java
,确保它装载了res/layout/main.xml
布局文件,修改如下:public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }
setContentView(int)
方法装载这个Activity的布局文件,资源ID —R.layout.main
指向res/layout/main.xml
布局文件。 - 运行这个应用。
应该能看到下面的画面:
注意XML属性是如何设置每个View的显示方式的。试着修改android:layout_weight(layout_width/layout_height)的值,看看各个View是如何显示的。
评论暂时关闭