用addView方法动态添加控件


addView能够通过按钮的监听事件在Layout中生成新的控件

一、通过按钮的监听事件生成layout布局

代码为:

final RelativeLayout /*布局名称*/ = new RelativeLayout(MainActivity.this);
//RelativeLayout可更改为LinearLayout

通过LayoutParams设置布局参数

RelativeLayout.LayoutParams /*参数名称*/ = new RelativeLayout.LayoutParams(/*宽度*/,/*高度*/)
//除了定义像素大小,还可以工具父控件调整
//首先需要声明
import android.view.ViewGroup;
//在宽度或高度中,设置为
ViewGroup.LayoutParams.WRAP_CONTENT//自适应
ViewGroup.LayoutParams.MATCH_PARENT//全占满

把布局和布局参数关联

/*布局名称*/.setLayoutParams(/*布局参数*/);

把Java生存的布局和XML生成的布局进行关联

/*父布局*/.addView(/*子布局*/);
//子控件同理

总结

final RelativeLayout /*布局名称*/ = new RelativeLayout(MainActivity.this);
RelativeLayout.LayoutParams /*布局参数*/ = new RelativeLayout.LayoutParams(/*宽度*/,/*高度*/);
/*布局名称*/.setLayoutParams(/*布局参数*/);
/*父布局*/.addView(/*子布局*/);

二、生成控件

控件与布局代码相似,以ImagenButton为例

ImageButton /*控件名称*/ = new ImageButton(MainActivity.this);

 控件参数设置同布局一致

关联也同上

例子:

ImageButton /*控件名称*/ = new ImageButton(MainActivity.this);
RelativeLayout.LayoutParams /*布局参数*/ = new RelativeLayout.LayoutParams(/*宽度*/,/*高度*/);
/*控件名称*/.setLayoutParams(/*布局参数*/);
/*父布局*/.addView(/*控件名称*/);