網頁

2014年7月11日 星期五

1.LinearLayout

這個Layout最主要的地方需要注意的屬性是android:orientation,屬性值分別為horizontal(水平)和vertical(垂直),下面先介紹horizontal的範例。

horizontal的xml範例程式碼:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3" /> </LinearLayout>
android:layout_widthandroid:layout_height的功能是指設定Android元件的寬度與高度,他的屬性有3個,分別是fill_parentmatch_parentwrap_contentfill_parentmatch_parent兩個值都是將大小擴展到最大的寬度與高度,這兩個值其實沒有什麼不同,只是在官方文件中指出match_parent將會取代fill_parent,當然fill_parent還是可以持續的使用,官方文件參考網址在這裡wrap_content這個值是將元件的大小根據元件中的內容適當的分配寬度和高度。

vertical的xml範例程式碼: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3" /> </LinearLayout>

除了使用android:layout_widthandroid:layout_height設定寬度與高度以外,還可以使用權重值的方式來設定,android:layout_weight這個功能是用來設定權重值,權重值越高元件所佔的範圍會越大,參考下面的範例程式碼:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:layout_weight="2" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" android:text="Submit" /> </LinearLayout>
根據Android官方文件的教學,如果有設定權重值的話,需要將寬或高設為0dp,而每個元件預設的權重值是0。


上面的方法都只是單純的使用水平或垂直的方式加入元件,用上面的方法沒有辦法排列成下面這張圖的Layout。

要形成這樣的Layout請參考下面的xml檔:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" <EditText android:layout_weight="2" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" android:text="Submit" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" <EditText android:layout_weight="2" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" android:text="Submit" /> </LinearLayout> </LinearLayout>

沒有留言:

張貼留言