?
? ????? PHP ??? ???? ??? ?? ??
TableRow
版本:Android 3.0 r1
?
類結(jié)構(gòu)
public class TableRow extends LinerLayout
?
java.lang.Object
android.view.View
? ???? android.view.ViewGroup
? ???? ?????? android.widget.LinearLayout
? ???? ?????? ?????? android.widget.TableRow
?
類概述
按照水平方向來組織子視圖的布局。TableRow應(yīng)該總是作為TableLayout的子視圖。如果TableRow的父視圖不是TableLayout,那么TableRow將相當(dāng)于一個水平方向布局的LinearLayout。
在XML配置文件中TableRow的子視圖不需要詳細指定其layout_width和layout_height屬性值。TableRow總是強制將這兩個屬性分別賦值為MATCH_PARENT和WRAP_CONTENT。
可參考android.widget.TableRow.LayoutParams的布局屬性。
?
內(nèi)部類
class ?????? TableRow.LayoutParams
適用于TableRow的子視圖的屬性設(shè)置
?
構(gòu)造函數(shù)
public TableRow (Context context)
為給定的上下文創(chuàng)建TableRow布局。
參數(shù)
context ? 應(yīng)用程序環(huán)境
?
public TableRow (Context context, AttributeSet attrs)
使用指定的屬性集合為給定的上下文創(chuàng)建TableRow布局。
參數(shù)
context ? 應(yīng)用程序環(huán)境
attrs? 屬性集合
?
公共方法
public TableRow.LayoutParams generateLayoutParams (AttributeSet attrs)
返回一組基于提供的屬性集合的布局參數(shù)集合。
參數(shù)
attrs? 用于生成布局參數(shù)的屬性集
返回值
??? ?????????????????? ViewGroup.LayoutParams或其子類的實例
?
public View getVirtualChildAt (int i)
返回指定索引的視圖。這個方法被重載時應(yīng)當(dāng)考慮到其虛擬子視圖。參見TableLayout和TableRow的示例代碼。
參數(shù)
i? 子視圖的索引
返回值
??? ?????????????????? 指定索引的子視圖
?
public int getVirtualChildCount ()
返回虛擬子視圖的個數(shù)。如果這個布局支持子視圖,此數(shù)量可能與實際子視圖數(shù)量不同。???? 參見TableLayout和TableRow的示例代碼。
返回值
??? ?????????????????? 虛擬子視圖的數(shù)量
?
public void setOnHierarchyChangeListener (ViewGroup.OnHierarchyChangeListener listener)
注冊一個回調(diào)函數(shù),當(dāng)從視圖中添加或移除子視圖時被調(diào)用。
參數(shù)
listener? 層次結(jié)構(gòu)變更時執(zhí)行的回調(diào)函數(shù)
?
受保護方法
protected boolean checkLayoutParams (ViewGroup.LayoutParams p)
(譯者注:檢測是不是AbsoluteLayout.LayoutParams的實例)
?
protected LinearLayout.LayoutParams generateDefaultLayoutParams ()
返回寬度為MATCH_PARENT,高度為WRAP_CONTENT且沒有跨度的布局參數(shù)集合。
返回值
??? ?????????????????? 默認布局參數(shù)集合或空
?
protected LinearLayout.LayoutParams generateLayoutParams (ViewGroup.LayoutParams p)
返回一組合法的受支持的布局參數(shù)集合。當(dāng)一個ViewGroup傳遞一個布局參數(shù)沒有通過checkLayoutParams(android.view.ViewGroup.LayoutParams)檢測的視圖時,此方法將被調(diào)用。此方法會返回一組新的適合當(dāng)前ViewGroup的布局參數(shù),可能從指定的一組布局參數(shù)集合中復(fù)制適當(dāng)?shù)膶傩浴?/span>
參數(shù)
p? 被轉(zhuǎn)換成一組適合當(dāng)前ViewGroup的布局參數(shù)
返回值
??? ?????????????????? 一個ViewGroup.LayoutParams的實例或者其中的一個子節(jié)點
?
protected void onLayout (boolean changed, int l, int t, int r, int b)
在此視圖設(shè)置其子視圖的大小及位置時調(diào)用。派生類可以重寫此方法并重新為其子類布???????? 局。
參數(shù)
changed? 這是當(dāng)前視圖的一個新大小或位置
l? 相對于父節(jié)點的左邊位置
t? 相對于父節(jié)點的頂點位置
r? 相對于父節(jié)點的右邊位置
b? 相對于父節(jié)點的底部位置
?
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
測量視圖及其內(nèi)容,以確定其寬度和高度。此方法由measure(int, int)調(diào)用。需要被子類重寫以提供準(zhǔn)確、高效的測量其內(nèi)容的方法。
約定:當(dāng)重寫此方法時,必須調(diào)用setMeasuredDimension(int, int)來保存當(dāng)前視圖的寬度和高度。如果調(diào)用不成功將會導(dǎo)致一個IllegalStateException異常,由measure(int, int)拋出。要有效的調(diào)用父類的onMeasure(int, int)方法。
基類的實現(xiàn)是以背景大小為默認大小,除非MeasureSpec(測量細則)允許更大的背景。子類應(yīng)重寫onMeasure(int, int)以對其內(nèi)容提供更合適的大小。
如果此方法被重寫,那么子類要確保其測量高度和測量寬度要大于視圖的最小寬度和最小高度(getSuggestedMinimumHeight()和getSuggestedMinimumWidth())。
參數(shù)
widthMeasureSpec? 父視圖要求的橫向空間大小。該要求由View.MeasureSpec進行編碼
heightMeasureSpec? 父視圖要求的縱向空間大小。該要求由View.MeasureSpec進行編碼
?
補充
推薦教程:
Android Doc官方教程-在TableLayout中使用TableRow
在TableLayout中使用TableRow對象來定義多行
?
?