天天看點

Android中文API(116)——TableLayout

正文

  一、結構

public class TableLayout extends LinerLayout

java.lang.Object

         android.view.View

               android.view.ViewGroup

                      android.widget.LinearLayout

                             android.widget.TableLayout

  二、概述

  無論是在代碼還是在 XML 布局檔案中,單元格必須安裝索引順序加入表格行. 列号是從 0 開始的.如果你不為子單元格指定列号,其将自動增值,使用下一個可用列号. 如果你跳過某個列号,他在表格行中作為空可以改對待。參見 ApiDemos 中通過 XML 建立表格的布局示例。

雖然表格布局典型的子對象是表格行,實際上你可以使用任何視圖類的子類, 作為表格視圖的直接子對象.視圖會作為隻有一行并結合了所有列的單元格顯示。

  參見

  三、内部類

  class        TableLayout.LayoutParams

  四、XML屬性

屬性名稱

描述

android:collapseColumns

隐藏從0開始的索引列。列直接必須用逗号隔開:1, 2, 5。非法或重複的設定将被忽略。

相關方法

<a href="http://developer.android.com/reference/android/widget/TableLayout.html#setColumnCollapsed%28int,%20boolean%29">setColumnCollapsed(int,boolean)</a>

android:shrinkColumns

收縮從0開始的索引列。列直接必須用逗号隔開:1, 2, 5。非法或重複的設定将被忽略。你可以通過"*"代替收縮所有列。注意一列能同時表示收縮和拉伸。

android:stretchColumns

拉伸從0開始的索引列。列直接必須用逗号隔開:1, 2, 5。非法或重複的設定将被忽略。你可以通過"*"代替收縮所有列。注意一列能同時表示收縮和拉伸。

  五、構造函數

  public TableLayout (Context context)

  為給定的上下文建立表格布局。

             參數

  context  應用程式上下文

  public TableLayout (Context context, AttributeSet attrs)

  使用指定的屬性集合為給定的上下文建立表格布局。

  attrs        屬性集合

  六、公共方法

  public void addView (View child)

  添加子視圖。如果子視圖沒有設定布局參數,則使用視圖組(ViewGroup)的布局參數為該視圖布局。

  child         添加的子視圖

  public void addView (View child, int index)

  index       子視圖加入的位置索引

  public void addView (View child, int index, ViewGroup.LayoutParams params)

  用指定的布局參數添加一個子視圖。

  params  為子視圖指定得布局參數

  public void addView (View child, ViewGroup.LayoutParams params)

  使用指定的布局參數添加子視圖。

  params  設定到子視圖上的布局參數

  public TableLayout.LayoutParams generateLayoutParams (AttributeSet attrs)

  傳回一組基于提供的屬性集合的布局參數集合。

  attrs        用于生成布局參數的屬性集

  傳回值

  public boolean isColumnCollapsed (int columnIndex)

  傳回指定列的折疊狀态。

  columnIndex  列索引

  折疊時為true;否則為false

  public boolean isColumnShrinkable (int columnIndex)

  傳回指定的列是否可收縮。

                       如果列可以收縮,傳回true;否則傳回false

  public boolean isColumnStretchable (int columnIndex)

  傳回指定的列是否可拉伸。

  如果列可以拉伸,傳回true;否則傳回false

  public boolean isShrinkAllColumns ()

  訓示是否所有的列都是可收縮的。

                       如果所有列都可收縮,傳回true;否則傳回false

  public boolean isStretchAllColumns ()

  訓示是否所有的列都是可拉伸的。

                       如果所有列都可拉伸,傳回true;否則傳回false

  public void requestLayout ()

  當某些變更導緻視圖的布局失效時調用該方法。該方法按照視圖樹的順序調用。

  public void setColumnCollapsed (int columnIndex, boolean isCollapsed)

  調用該方法會請求布局操作。

                 相關XML屬性

              參數

  isCollapsed     折疊時為true;否則為false

  public void setColumnShrinkable (int columnIndex, boolean isShrinkable)

  設定指定列是否可收縮。當行太寬時,表格可以收縮該列以提供更多空間。

             相關XML屬性

                 參數

  isShrinkable    如果列可以收縮,設為真;否則設為假。預設是假。

  public void setColumnStretchable (int columnIndex, boolean isStretchable)

  設定指定列是否可拉伸。可拉伸時,列會盡可能多的占用行中的可用空間。

  isStretchable 如果列可以拉伸,設為真;否則設為假.預設是假

  public void setOnHierarchyChangeListener (ViewGroup.OnHierarchyChangeListener listener)

  注冊當從視圖中添加或移除子視圖時發生的回調函數。

  listener  層次結構變更時執行的回調函數

  public void setShrinkAllColumns (boolean shrinkAllColumns)

  标記所有列為可收縮的便利的方法。

  shrinkAllColumns    如果标記所有列為可收縮時為true

  public void setStretchAllColumns (boolean stretchAllColumns)

  标記所有列為可拉伸的便利的方法。

                   相關XML屬性

                   參數

stretchAllColumns           如果标記所有列為可拉伸時為true

  七、受保護方法

  protected boolean checkLayoutParams (ViewGroup.LayoutParams p)

    (譯者注:檢測是不是AbsoluteLayout.LayoutParams的執行個體)

  protected LinearLayout.LayoutParams generateDefaultLayoutParams ()

             傳回值

  預設布局參數集合或空

  protected LinearLayout.LayoutParams generateLayoutParams (ViewGroup.LayoutParams p)

  p      要轉換為适合于 ViewGroup 的布局參數的集合

                傳回值

  protected void onLayout (boolean changed, int l, int t, int r, int b)

  該視圖設定其子視圖的大小及位置時調用.派生類可以重寫此方法,并為其子類布局。

  changed           是否為視圖設定了新的大小和位置

  l       相對于父視圖的左側的位置

  t      相對于父視圖的頂部的位置

  r      相對于父視圖的右側的位置

  b      相對于父視圖的底部的位置

  protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

  八、補充 

    文章精選

TableLayout.LayoutParams

譯者署名: madgoat

版本:Android 3.0 r1

結構

繼承關系

public static class TableLayout.LayoutParams extends LinerLayout.LayoutParams

         android.view.ViewGroup.LayoutParams

               android.view.ViewGroup.MarginLayoutParams

                      android.widget.LinearLayout.LayoutParams

                             android.widget.TableLayout.LayoutParams

概述

構造函數

  public TableLayout.LayoutParams (Context c, AttributeSet attrs)

public TableLayout.LayoutParams (int w, int h)

public TableLayout.LayoutParams (int w, int h, float initWeight)

public TableLayout.LayoutParams ()

public TableLayout.LayoutParams (ViewGroup.LayoutParams p)

public TableLayout.LayoutParams (ViewGroup.MarginLayoutParams source)

公共方法

protected void setBaseAttributes (TypedArray a, int widthAttr, int heightAttr)

參數

a      一組樣式屬性

widthAttr        擷取的寬度屬性

heightAttr       擷取的高度屬性

本文轉自over140 51CTO部落格,原文連結:http://blog.51cto.com/over140/582352,如需轉載請自行聯系原作者

繼續閱讀