4.4 元件的高度與寬度

Android 的所有元件都具備兩個屬性,也就是元件的高與寬,屬性名稱 為「layout_height」與「layout_width」,許多人直覺的想要以螢幕的畫素為元件訂定個別的高度與寬度,其實,為元件訂定固定的高與寬是不適合的, 因為 Android 手機產品非常多元,有的手機的解析度是 480x720,有的是 640x960、640x1136、1080x1920 或甚至 1440x2560,在如此眾多的差異性下, 假設我們的 APP 訂的元件大小是固定的,那是無法滿足所有的螢幕需求的。 因此,Android 建議開發者在訂定元件大小時,若希望只占用元件內容資料時,使用「wrap_content」值,當想要元件占滿所在區域可用空間時,使用 「match_parent」值,筆者使用上節的 LinearLayout 垂直配置的範例,說明如下。

■ 符合元件內容物- wrap_content

意義是元件只占可顯示其內容物的大小,請先將 LinearLayout 元件的對齊改成「垂直」後,再選擇第一顆按鈕,如下圖:

觀察右下角屬性區,其 layout_width 寬度屬性與 layout_height 高度屬性 都是「wrap_content」代表元件的高與度都只占必要的空間,屬性如下圖:

■ 以元件所在的容器為主- match_parent

意義是所在容器有多大就占多大,繼續使用同一個範例,為第二個按鈕元件設定其寬度屬性為「match_parent」,如下:

結果如下圖:

第二顆按鈕雖然內容文字不需要那麼寬的空間,但其元件寬度仍占滿所在的 LinearLayout 區域的寬度。