Android 使用代码指定view组件在布局中的属性

来源:互联网 发布:淘宝网购物女裤 编辑:程序博客网 时间:2024/06/07 06:47

一、我们已经知道使用XML为组件指定属性,以及添加到指定的布局中是非常的简单的,但是有时候

我们还是需要使用java代码来创建一些变化性非常大的组件,以及为它们指定一些属性,添加到布局

当中。但是使用java代码来做到这些不如XML容易,接下来简单介绍一下那些共性的东西。

1、用java代码创建指定的组件

2、指定组件的属性,将组件添加到布局当中

首先来说,那些属于组件本身的属性,一般都有对应的方法,我们可以查阅官方文档;之后是,我们

需要指定那些属于LayoutParams指定的属性,方法有两种:

①android.view.View有方法

void setLayoutParams(ViewGroup.LayoutParams params)

这个方法能够指定组件的LayoutParams的属性,只需要创建一个

ViewGroup.LayoutParams对象,或者创建一个ViewGroup.LayoutParams的子类对象赋予

params,在ViewGroup.LayoutParams以及其子类的构造方法中的参数就能够指定这些属性;

如:

LinearLayout layout = (LinearLayout) findViewById(R.Id.root) ;

Button bn = new Button(this) ;

bn.setLayoutParams

(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,

                                                            ViewGroup.LayoutParams.WRAP_CONTENT)) ;

layout.addView(bn) ;

②android.view.ViewGroup抽象类中有多个重载的addView方法,这个

方法能够指定添加的组件的布局属性,如,其中一个addView方法如下:

addView(View child, ViewGroup.LayoutParams params) ;

很显然我们通过创建一个ViewGroup.LayoutParams的对象或者子类对象就能够指定要添加的这个组件的布局属性了 ;

③请注意上面的说法,参数params可以是ViewGroup.LayoutParams,也可是

它的子类,这样的话,我们就能够指定不同布局管理器的添加方式,因为这些

布局管理器的静态内部类都是继承自ViewGroup.LayoutParams的(或者直接

继承自ViewGroup.LayoutParams, 或者间接继自

ViewGroup.LayoutParams )

1 0
原创粉丝点击