2012年3月3日 星期六

[AndroidLayout] android:weightSum and android:layout_weight

android:weightSum
  • If unspecified, the sum is computed by adding the layout_weight of all of the children.
  • Must be a floating point value, such as "1.2".

android:layout_weight
  • Linear layout提供此屬性,讓其所有的子顯示物件可以透過設定該屬性來表明自己的重要性。
  • 當所有有定義明確長寬的物件都好之後,剩下的空間分配給有宣告layout_weight屬性的物件,按照優先權使所有剩下空間被填滿。
  • 分配方式:
    • 若是指定在 child,值越分配到越空間。
    • ex: 假設剩下空間有三個View(A、B、C)要分配,其權值大小分別為3、1、1,因此它們所分配到的空間大小將會是3:1:1。
    • 若是指定在 parent,值越則分配到越空間。

利用這兩個屬性可以分配 LinearLayout 中 widgets 的比例:
This can be used for instance to give a single child 50% of the total available space by giving it a layout_weight of 0.5 and setting the weightSum to 1.0.

# Update on 2012/06/18
假設是兩個 widgets 要依比例分配寬,那麼此兩 widgets 的寬則應設為 0 dp,讓系統可調整其比例。


* Reference
- LinearLayout | Android Developers
- Chickenrice's Workshop: [Android] layout_weight的妙用-讓View的大小以百分比率顯示(proportionate size)
- milkmidi Blog: Android LinearLayout **

沒有留言:

張貼留言