Android LinearLayout

分享到:

LinearLayout是一种线性布局控件,所谓线性布局的意思是只能水平方向或垂直方向排列控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。

XML属性:

android:baselineAligned 是否允许用户调整它内容的基线
android:baselineAlignedChildIndex 当一个线性布局与另一个布局是按基线对齐的一部分,它可以指定其内容的基线对齐方式。
android:gravity 指定如何在该对象中放置此对象的内容(x/y坐标值)
android:orientation 设置它内容的对其方向(horizontal 水平 / vertical 垂直)

LinearLayout小技巧:

(1) 在LinearLayout中设置排列方式为水平时只有垂直方向的设置是有效的,水平方向的设置是无效的:即left,right,center_horizontal 是不生效的。
(2) 在LinearLayout中设置排列方式为垂直时只有水平方向设置是有效的,垂直方向的设置是无效的是无效的:即top,bottom,center_vertical 是无效的。

LinearLayout实例1:

本例演示如何在同一水平方向上使两个控件分别左对齐和右对齐的解决方法

XML布局代码如下:(本例代码来自网络)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_weight="1">
    <TextView
        android:layout_width="50px"
        android:layout_height="50px"
        android:background="#ff0000"
        android:gravity="center"
        android:text="001" />
</LinearLayout>
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_weight="1">
    <TextView
        android:layout_width="50px"
        android:layout_height="50px"
        android:text="002"
        android:background="#ff00ff"
        android:gravity="center"
        android:layout_gravity="right"/>
</LinearLayout>
</LinearLayout>

运行效果如下图:

LinearLayout实例

LinearLayout实例2:

本例演示了多个LinearLayout进行水平方向与垂直方向嵌套组合的布局方法,XML布局代码如下:(本例代码来自网络)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical" >
  <LinearLayout
          android:orientation="horizontal"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:baselineAligned="false"
          android:layout_weight="1"  >
 
  <LinearLayout
          android:orientation="horizontal"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          android:layout_weight="1">
  <TextView
          android:text="@string/color_green"
          android:textColor="#ff0000"
          android:background="#00aa00"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          android:layout_weight="1"/>
  <TextView
          android:text="@string/color_blue"
          android:background="#0000aa"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          android:layout_weight="1"/>
  </LinearLayout>
  <LinearLayout
          android:orientation="vertical"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          android:layout_weight="1">
  <TextView
          android:text="@string/color_black"
          android:background="#000000"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_weight="1"/>
  <TextView
          android:text="@string/color_yellow"
          android:background="#aaaa00"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_weight="1"/>
  <TextView
          android:text="@string/color_unknown"
          android:background="#00aaaa"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_weight="1"/>
  </LinearLayout>
  </LinearLayout>
  <LinearLayout
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_weight="2">
  <TextView
          android:text="@string/color_red"
          android:gravity="fill_vertical"
          android:background="#aa0000"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_weight="2"/>
  <TextView
          android:text="@string/color_white"
          android:textColor="#ff0000"
          android:background="#ffffff"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content" 
          android:layout_weight="2"/> 
  </LinearLayout> 
</LinearLayout>

定义的颜色名称放到了string.xml中,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="hello">Hello World, TestAbsoluteLayoutActivity!</string>
  <string name="app_name">TestAbsoluteLayout</string>
  <string name= "color_red">red</string>
  <string name= "color_green">green</string>
  <string name= "color_blue">blue</string>
  <string name= "color_white">white</string>
  <string name= "color_black">black</string>
  <string name= "color_yellow">yellow</string>
  <string name= "color_unknown">unknown</string>
</resources>

运行效果如下图:

LinearLayout实例

昵    称:
验证码:

相关文档:

Android控件
Android基础知识
Android组件
Android实例