很多介绍android组件的资料,都只给xml的写法,没弄明白如何通过代码来设置,找了半天,才发现需要依赖于不同View节点自身的LayoutParms来设置。比如:我们要将表格布局中的某个元素占满纵向三个位置,也就是传统编程中TableLayout的colspan。
在android中的做法是:
//v是需要加入到TableRow中的元素。
LayoutParams lp = v.getLayoutParams();
if(lp==null){
lp = new TableRow.LayoutParams();
}
//构造一个TableRow.LayoutParams,它是子类,把lp传进去这样之前的布局参数就在该子类中了
TableRow.LayoutParams tlp = new TableRow.LayoutParams(lp);
tlp.span = span;//TableRow.LayoutParams可以设置这个属性
v.setLayoutParams(tlp); //别忘了把参数设置回去
一切搞定,关键是要利用TableRow.LayoutParams。对于其它xml中的view属性,可以如法刨制。