天天看點

Android開發中TableLayout表格布局(二)

三、關于TableLayout

       在向TableLayout容器中添加或者移除視圖的時候,開發者可以對其進行監聽,示例如下:

TableLayout tableLayout = new TableLayout(this);

tableLayout.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {

   @Override

   public void onChildViewAdded(View parent, View child) {

       Toast.makeText(getBaseContext(),"add",Toast.LENGTH_SHORT).show();

   }

   public void onChildViewRemoved(View parent, View child) {

       Toast.makeText(getBaseContext(),"remove",Toast.LENGTH_SHORT).show();

});

開發者還可以對表格中視圖元素的一些尺寸自适應做一些設定,其中還有一些常用的方法列舉如下:

//擷取表格中所有列是否是可收縮的

public boolean isShrinkAllColumns()

//設定表格中的所有列是否可收縮

public void setShrinkAllColumns()

//擷取表格中的所有列是否可拉伸

public boolean isStretchAllColumns()

//設定表格中的所有列是否可拉伸

public void setStretchAllColumns()

//設定某一列是否可拉伸

public void setColumnStretchable(int columnIndex, boolean isStretchable)

//擷取某一列是否可拉伸

public boolean isColumnStretchable(int columnIndex)

//設定某一列是否可收縮

public void setColumnShrinkable(int columnIndex, boolean isShrinkable)

//擷取某一列是否可收縮

public boolean isColumnShrinkable(int columnIndex)

所謂可收縮的列,是指如果此列的内容寬度超出一定寬度,為了使後面的列内容展示出來,此列寬度會自動收縮,高度會增加,如下圖所示:

Android開發中TableLayout表格布局(二)

至于可拉伸的列,是指如果此行内容内有充滿整行,此列會進行拉伸自動充滿。

       下面這些方法與表格中列的隐藏有關:

//設定某列是否隐藏

public void setColumnCollapsed(int columnIndex, boolean isCollapsed)

//擷取某列是否被隐藏

public boolean isColumnCollapsed(int columnIndex)

需要注意,在TableLayout中也定義了一個LayoutParams的内部類,其用于設定其中每一行視圖元素的布局,但是開發者隻能設定此布局類對應的高度參數,寬度将強制設定為MATCH_PARENT。

繼續閱讀