[译文]Linear Layout - Android SDK Tutorials系列

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

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

  1. 创建一个工程:HelloLinearLayout
  2. 打开 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规定的方式排列着。

  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. 运行这个应用。

应该能看到下面的画面:

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

posted on 2011-12-07 16:12  OnionD  阅读(244)  评论(0编辑  收藏  举报

导航