Android中文API(116)——TableLayout

前言html

  本章內容是android.widget.TableLayout,版本爲Android 3.0 r1,翻譯來自"cnmahj",歡迎你們訪問他的博客:http://android.toolib.net/blog/,再次感謝"cnmahj"!歡迎你一塊兒參與Android的中文翻譯,聯繫我over140@gmail.com。
 java

 

聲明android

  歡迎轉載,但請保留文章原始出處:)
 安全

 

    農民伯伯:http://over140.blog.51cto.com/ide

    Android中文翻譯組: http://goo.gl/6vJQl

 

 

 

正文函數

  1、結構佈局

 

public class TableLayout extends LinerLayout學習

        

java.lang.Object編碼

         android.view.Viewspa

               android.view.ViewGroup

                      android.widget.LinearLayout

                             android.widget.TableLayout

 

 

  2、概述
 

 

  按照行列來組織子視圖的佈局。表格佈局包含一系列的 TableRow對象,用於定義行(實際上你也能夠使用其它子對象,將在後面進行解釋)。表格佈局不爲它的行、列和單元格顯示錶格線。每一個行能夠包含0個以上(包括0)的單元格; 每一個單元格能夠設置一個View對象.與行包含不少單元格同樣, 表格包含不少列。表格的單元格能夠爲空.單元格能夠象 HTML 那樣跨列。

  列的寬度由該列全部行中最寬的一個單元格決定.不過表格佈局能夠經過 setColumnShrinkable() 方法或者 setColumnStretchable() 方法來標記某些列能夠收縮或能夠拉伸. 若是標記爲能夠收縮,列寬能夠收縮以使表格適合容器的大小。若是標記爲能夠拉伸, 列寬能夠拉伸以佔用多餘的空間。表格的總寬度由其父容器決定. 記住列能夠同時具備可拉伸和可收縮標記是很重要的。在列能夠調整其寬度以佔用可用空間, 但不能超過限度時是頗有用的.最後,你能夠經過調用setColumnCollapsed() 方法來隱藏列。

  表格佈局的子對象不能指定 layout_width 屬性.寬度永遠是 MATCH_PARENT。不過子對象能夠定義 layout_height 屬性;其默認值是 WRAP_CONTENT. 若是子對象是 TableRow,其高度永遠是 WRAP_CONTENT

  不管是在代碼仍是在 XML 佈局文件中,單元格必須安裝索引順序加入表格行. 列號是從 0 開始的.若是你不爲子單元格指定列號,其將自動增值,使用下一個可用列號. 若是你跳過某個列號,他在表格行中做爲空能夠改對待。參見 ApiDemos 中經過 XML 建立表格的佈局示例。

雖然表格佈局典型的子對象是表格行,實際上你能夠使用任何視圖類的子類, 做爲表格視圖的直接子對象.視圖會做爲只有一行並結合了全部列的單元格顯示。

  參見

  Table Layout tutorial

 

 

  3、內部類

 

  class        TableLayout.LayoutParams

  該類強制將子視圖的寬度設爲 MATCH_PARENT 將沒有設置高度的子視圖的高度設爲 WRAP_CONTENT

 

 

  4、XML屬性

 

屬性名稱

描述

android:collapseColumns

隱藏從0開始的索引列。列直接必須用逗號隔開:1, 2, 5。非法或重複的設置將被忽略。

相關方法

setColumnCollapsed(int,boolean)

android:shrinkColumns

收縮從0開始的索引列。列直接必須用逗號隔開:1, 2, 5。非法或重複的設置將被忽略。你能夠經過"*"代替收縮全部列。注意一列能同時表示收縮和拉伸。

相關方法

setColumnCollapsed(int,boolean)

android:stretchColumns

拉伸從0開始的索引列。列直接必須用逗號隔開:1, 2, 5。非法或重複的設置將被忽略。你能夠經過"*"代替收縮全部列。注意一列能同時表示收縮和拉伸。

相關方法

setColumnCollapsed(int,boolean)

 

 

  5、構造函數

 

  public TableLayout (Context context)

  爲給定的上下文建立表格佈局。

             參數

  context  應用程序上下文

 

  public TableLayout (Context context, AttributeSet attrs)

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

             參數

  context  應用程序上下文

  attrs        屬性集合

 

 

  6、公共方法

 

  public void addView (View child)

  添加子視圖。若是子視圖沒有設置佈局參數,則使用視圖組(ViewGroup)的佈局參數爲該視圖佈局。

             參數

  child         添加的子視圖

 

  public void addView (View child, int index)

  添加子視圖。若是子視圖沒有設置佈局參數,則使用視圖組(ViewGroup)的佈局參數爲該視圖佈局。

             參數

  child         添加的子視圖

  index       子視圖加入的位置索引

 

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

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

             參數

  child         添加的子視圖

  index       子視圖加入的位置索引

  params  爲子視圖指定得佈局參數

 

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

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

             參數

  child         添加的子視圖

  params  設置到子視圖上的佈局參數

 

  public TableLayout.LayoutParams generateLayoutParams (AttributeSet attrs)

  返回一組基於提供的屬性集合的佈局參數集合。

             參數

  attrs        用於生成佈局參數的屬性集

  返回值

                       ViewGroup.LayoutParams或其子類的實例

 

  public boolean isColumnCollapsed (int columnIndex)

  返回指定列的摺疊狀態。

             參數

  columnIndex  列索引

  返回值

  摺疊時爲true;不然爲false

 

  public boolean isColumnShrinkable (int columnIndex)

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

             參數

  columnIndex  列索引

  返回值

                       若是列能夠收縮,返回true;不然返回false

 

  public boolean isColumnStretchable (int columnIndex)

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

             參數

  columnIndex  列索引

  返回值

  若是列能夠拉伸,返回true;不然返回false

 

  public boolean isShrinkAllColumns ()

  指示是否全部的列都是可收縮的。

  返回值

                       若是全部列均可收縮,返回true;不然返回false

 

  public boolean isStretchAllColumns ()

  指示是否全部的列都是可拉伸的。

  返回值

                       若是全部列均可拉伸,返回true;不然返回false

 

  public void requestLayout ()

  當某些變動致使視圖的佈局失效時調用該方法。該方法按照視圖樹的順序調用。

 

  public void setColumnCollapsed (int columnIndex, boolean isCollapsed)

  摺疊或恢復給定列。摺疊時,列從屏幕上消失,其空間由其它列佔用。 當列屬於 TableRow 時才能夠進行摺疊/恢復操做。

  調用該方法會請求佈局操做。

                 相關XML屬性

                       android:collapseColumns

              參數

  columnIndex  列索引

  isCollapsed     摺疊時爲true;不然爲false

 

  public void setColumnShrinkable (int columnIndex, boolean isShrinkable)

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

  調用該方法會請求佈局操做

             相關XML屬性

                            android:shrinkColumns

                 參數

  columnIndex  列索引

  isShrinkable    若是列能夠收縮,設爲真;不然設爲假。默認是假。

 

  public void setColumnStretchable (int columnIndex, boolean isStretchable)

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

  調用該方法會請求佈局操做

             相關XML屬性

                            android:stretchColumns

              參數

  columnIndex  列索引

  isStretchable 若是列能夠拉伸,設爲真;不然設爲假.默認是假

 

  public void setOnHierarchyChangeListener (ViewGroup.OnHierarchyChangeListener listener)

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

             參數

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

 

  public void setShrinkAllColumns (boolean shrinkAllColumns)

  標記全部列爲可收縮的便利的方法。

             相關XML屬性

   android:shrinkColumns

             參數

  shrinkAllColumns    若是標記全部列爲可收縮時爲true

 

  public void setStretchAllColumns (boolean stretchAllColumns)

  標記全部列爲可拉伸的便利的方法。

                   相關XML屬性

                            android:stretchColumns

                   參數

           stretchAllColumns           若是標記全部列爲可拉伸時爲 true

 

 

  7、受保護方法

 

  protected boolean checkLayoutParams (ViewGroup.LayoutParams p)

    (譯者注:檢測是否是AbsoluteLayout.LayoutParams的實例)

 

  protected LinearLayout.LayoutParams generateDefaultLayoutParams ()

  返回寬度爲MATCH_PARENT 高度爲WRAP_CONTENT的佈局參數集合。

             返回值

  默認佈局參數集合或空

 

  protected LinearLayout.LayoutParams generateLayoutParams (ViewGroup.LayoutParams p)

  基於提供的佈局參數返回一組安全的佈局參數集合.當傳入 ViewGroup 的視圖的參數沒有經過checkLayoutParams(android.view.ViewGroup.LayoutParams) 的檢測時,調用該方法. 該方法會返回適合 ViewGroup 的新的佈局參數,可能從指定的佈局參數中複製適當的屬性。

             參數

  p      要轉換爲適合於 ViewGroup 的佈局參數的集合

                返回值

                       ViewGroup.LayoutParams或其子類的實例

 

  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)

  評估視圖及其內容,以決定其寬度和高度.此方法由measure(int, int) 調用,子類能夠重載以提供更精確、更有效率的衡量其內容尺寸的方法。

  約定: 覆蓋該方法時,必須調用 setMeasuredDimension(int, int) 方法來保存評估結果的視圖的寬度和高度.若是忘記將致使 measure(int, int) 方法拋出IllegalStateException異常.要有效的利用父類的onMeasure(int, int)方法。

  基類測量的是背景的大小,除非 MeasureSpec 容許超過背景.子類應該重寫 onMeasure(int, int) 方法,覺得其內容提供更適合的大小。

  若是重寫了該方法,子類要確保其高度和寬度大於等於視圖的最小高度和寬度. getSuggestedMinimumHeight() getSuggestedMinimumWidth()

             參數

  widthMeasureSpec         父視圖要求的橫向空間大小.該要求由 View.MeasureSpec 進行了編碼處理。

         heightMeasureSpec        父視圖要求的縱向空間大小 . 該要求由 View.MeasureSpec 進行了編碼處理。

 

 

  8、補充
 

 

    文章精選

                   Android UI學習 - TableLayout

 

 

 

TableLayout.LayoutParams

譯者署名: madgoat

譯者連接: http://madgoat.cn

版本:Android 3.0 r1

 

結構

繼承關係

public static class TableLayout.LayoutParams extends LinerLayout.LayoutParams

        

java.lang.Object

         android.view.ViewGroup.LayoutParams

               android.view.ViewGroup.MarginLayoutParams

                      android.widget.LinearLayout.LayoutParams

                             android.widget.TableLayout.LayoutParams

 

概述

         這種佈局參數強制每一個子元素的寬度爲MATCH_PARENT每一個子元素的高度爲WRAP_CONTENT,但只有在未指定高度的狀況下。

 

構造函數

  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 ()

設置子元素的寬爲ViewGroup.LayoutParams高爲WRAP_CONTENT

 

public TableLayout.LayoutParams (ViewGroup.LayoutParams p)

 

public TableLayout.LayoutParams (ViewGroup.MarginLayoutParams source)

 

公共方法

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

修改行寬度的參數爲MATCH_PARENT行高度的佈局參數若是沒有指定則修改成WRAP_CONTENT

參數

a      一組樣式屬性

widthAttr        獲取的寬度屬性

heightAttr       獲取的高度屬性

相關文章
相關標籤/搜索