1. 程式人生 > >Layout _width ,Layout_height和heigh ,width 區別:

Layout _width ,Layout_height和heigh ,width 區別:

Layout,翻譯為中文的意思是 佈局,安排,版面設計。對於許多的元件的命令,都有Layout_x的區別,而許多的區別很明顯,直接是Layout是相對於父容器(一般就是整個xml的佈局)的改變,一個是相對於元件本身的改變。比較典型的就是gravity和layout_gravity,當然也有例外的 ,比如Layout_marginpanding

對於每個元件,可以獨自的使用Layout _width ,layout_heigh直接的設定相對於父容器的大小,

設定為 wrap_content或者 match_parent. 但是heigh ,width不能設定這樣設定,不能設定相對於父容器

,否則會產生

error: Error: String types not allowed (at 'width' with value 'wrap_content')。

並且,一個元件可以只有Layout _width ,layout_height。但卻不能只有heigh ,width,而沒有Layout _width ,layout_height,因為那樣的元件會看不到。如果你要使用heigh ,width的話,就要先設定Layout _width ,layout_height,把heigh ,width用來作為元件的微調使用。

Xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello talk"
        android:textColor="#482" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:height="80dp"
        android:text="hello talk"
        android:textColor="#810"
        android:width="80dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello talk"
        android:textColor="#482" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:height="80dp"
        android:text="hello talk"
        android:textColor="#810"
        android:width="80dp" />

	</LinearLayout>

截圖:

可以看出來不是改變的字型,而是直接改變的元件本生,但在TextvView中,好像效果不是很明顯。

我們知道,其實在設定寬高的時候,我們是可以直接的把寬高設定為定製為:xdp,在這方面,Layout _width ,layout_height或者heigh ,width一樣都可以設定。

至於還有其他的區別,有待發現中,呵呵!!

去網上找了下相關的,有這種說法:

若還要講講兩者的區別的話,那就是:
android:width 的值,一般是 "100dp" 這樣的數值;
android:layout_width 的值,一般是"fill_parent","wrap_content","match_parent".當然,它也可以像前者一樣,設定數值的.

帶"layout"的屬性是指整個控制元件而言的,是與父控制元件之間的關係,如 layout_gravity 在父控制元件中的對齊方式, layout_margin 是級別相同的控制元件之間的間隙等等;

不帶"layout" 的屬性是指控制元件中文字的格式,如gravity是指文字的對齊方式等等,而其中文字的格式又受制約於它的控制元件在父控制元件中的屬性.

至於說layout的屬性是針對文字的,在這個例子中沒有得到很好證實,因為對文字設定了寬高為 80dp,可是也沒啥效果啊。