Android 佈局詳解 -一線性佈局以及重要屬性

Android 佈局詳解

Android 佈局是開發中很是重要的一個知識部分,它的佈局分爲如下幾種: android

Linear Layout:線性佈局 
Relative Layout
:相對佈局 
Table Layout
:表格佈局 
Grid View
:網格佈局 
Tab Layout
:選項卡布局 
List View
:列表佈局 佈局

        以下圖: spa

1、Linear Layout

簡單來講,直着排,橫着排均可以,還能夠嵌套,此佈局運用的很是多。 code

  • android:orientation      定義佈局內的方向水平或垂直(horizontal/vertical  
  • android:layout_weight  子元素對未佔用空間【水平或垂直】分配權重值,其值越小,權重越大。 
  • android:layout_width -  寬(1.fill_parent: 父元素決定,2.wrap_content: 自己的內容決定
  • android:layout_height - 高(3.高直接指定一個 px 值
  • android:gravity -          內容的排列形式(經常使用 top, bottom, left, right, center,Left|center_


下面直接上示例代碼及截圖: 
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:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#aa0000"
            android:gravity="center_horizontal"
            android:text="red" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#00aa00"
            android:gravity="center_horizontal"
            android:text="green" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#0000aa"
            android:gravity="center_horizontal"
            android:text="blue" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#aaaa00"
            android:gravity="center_horizontal"
            android:text="yellow" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="row one"
            android:textSize="15pt" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="row two"
            android:textSize="15pt" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="row three"
            android:textSize="15pt" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="row four"
            android:textSize="15pt" />
    </LinearLayout>

</LinearLayout>



下面詳細詳解這些配置的含義: three

LinearLayout 標籤的經常使用屬性 
android:orientation="horizontal":定義方向水平或垂直(horizontal/vertical  
android:layout_width="fill_parent" :寬度填充滿父控件的寬度 
android:layout_height="fill_parent":寬度填充滿父控件的高度 
android:layout_weight="1":重量?可解釋爲權重,這是個什麼意思呢,請看下圖 utf-8


我將這裏的配置變了一下, 開發

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#aa0000"
        android:gravity="center_horizontal"
        android:text="red" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:background="#00aa00"
        android:gravity="center_horizontal"
        android:text="green" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="3"
        android:background="#0000aa"
        android:gravity="center_horizontal"
        android:text="blue" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="4"
        android:background="#aaaa00"
        android:gravity="center_horizontal"
        android:text="yellow" />

</LinearLayout>



能夠看到我設置成了 1234,這四 TextView顯示的寬度不同了,具體是怎麼算的,這個咱們就不追究了,意思清楚就行,都設置爲 1則平分,不然數給的越大,佔的位置就越多。

再看一下TextView的解釋 it

<TextView
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="#aa0000"
    android:gravity="center_horizontal"
    android:text="red" />



android:text="red":要顯示的內容 
android:gravity="center_horizontal":顯示內容的對齊方式 
android:background="#aa0000" :背景色 
android:layout_width="wrap_content":寬度,包括本身的內容的寬度 
android:layout_height="fill_parent":高度,填充父控件的高度 
android:layout_weight="1":權重 io

其實含義若是懂些CSS屬性的話,仍是蠻好懂的,佈局跟Div有點相似 
//相似一個外層DIV,裏面的內容垂直佈局android:orientation="vertical" 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    
    //相似第一個子DIV,內容水平佈局android:orientation="horizontal" 
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="horizontal" >
    </LinearLayout>
    
     //相似第二個子DIV,內容垂直佈局android:orientation="vertical" 
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical" >
    </LinearLayout>
    
</LinearLayout>
相關文章
相關標籤/搜索