Android SDK Tutorials系列 - Hello Views - Linear Layout


LinearLayout 是 ViewGroup 的一种,里面包含的View按线性方式排列,要么垂直方向,要么水平方向。

不要过度使用LinearLayout。如果你开始嵌套使用LinearLayout,那也许你应该考虑使用RelativeLayout了。

  1. 创建一个工程:HelloLinearLayout
  2. 打开 res/layout/main.xml,修改内容如下: 
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"  
    3.     android:orientation="vertical"  
    4.     android:layout_width="fill_parent"  
    5.     android:layout_height="fill_parent">  
    6.   
    7.   <LinearLayout  
    8.       android:orientation="horizontal"  
    9.       android:layout_width="fill_parent"  
    10.       android:layout_height="fill_parent"  
    11.       android:layout_weight="1">  
    12.       <TextView  
    13.           android:text="red"  
    14.           android:gravity="center_horizontal"  
    15.           android:background="#aa0000"  
    16.           android:layout_width="wrap_content"  
    17.           android:layout_height="fill_parent"  
    18.           android:layout_weight="1"/>  
    19.       <TextView  
    20.           android:text="green"  
    21.           android:gravity="center_horizontal"  
    22.           android:background="#00aa00"  
    23.           android:layout_width="wrap_content"  
    24.           android:layout_height="fill_parent"  
    25.           android:layout_weight="1"/>  
    26.       <TextView  
    27.           android:text="blue"  
    28.           android:gravity="center_horizontal"  
    29.           android:background="#0000aa"  
    30.           android:layout_width="wrap_content"  
    31.           android:layout_height="fill_parent"  
    32.           android:layout_weight="1"/>  
    33.       <TextView  
    34.           android:text="yellow"  
    35.           android:gravity="center_horizontal"  
    36.           android:background="#aaaa00"  
    37.           android:layout_width="wrap_content"  
    38.           android:layout_height="fill_parent"  
    39.           android:layout_weight="1"/>  
    40.   </LinearLayout>  
    41.           
    42.   <LinearLayout  
    43.     android:orientation="vertical"  
    44.     android:layout_width="fill_parent"  
    45.     android:layout_height="fill_parent"  
    46.     android:layout_weight="1">  
    47.     <TextView  
    48.         android:text="row one"  
    49.         android:textSize="15pt"  
    50.         android:layout_width="fill_parent"  
    51.         android:layout_height="wrap_content"  
    52.         android:layout_weight="1"/>  
    53.     <TextView  
    54.         android:text="row two"  
    55.         android:textSize="15pt"  
    56.         android:layout_width="fill_parent"  
    57.         android:layout_height="wrap_content"  
    58.         android:layout_weight="1"/>  
    59.     <TextView  
    60.         android:text="row three"  
    61.         android:textSize="15pt"  
    62.         android:layout_width="fill_parent"  
    63.         android:layout_height="wrap_content"  
    64.         android:layout_weight="1"/>  
    65.     <TextView  
    66.         android:text="row four"  
    67.         android:textSize="15pt"  
    68.         android:layout_width="fill_parent"  
    69.         android:layout_height="wrap_content"  
    70.         android:layout_weight="1"/>  
    71.   </LinearLayout>  
    72.   
    73. </LinearLayout>  

    仔细查看这个XML,最外层是一个LinearLayout,它的android:orientation属性被设置为"vertical",意味着它包含的View(一共两个)按照垂直方向排列。它包含的第一个View是另一个LinearLayout,这个LinearLayout使用水平排列方式;包含的第二个LinearLayout使用垂直排列方式。两个内部的LinearLayout都包含了几个TextView,这些TextView都按照包含他们的LinearLayout规定的方式排列着。

  3. 现在打开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布局文件。

  4. 运行这个应用。

应该能看到下面的画面:

Hello LinearLayout

注意XML属性是如何设置每个View的显示方式的。试着修改android:layout_weight(layout_width/layout_height)的值,看看各个View是如何显示的。


返回 Android SDK Tutorials系列 - Hello Views

相关内容