android动态写布局,Android中在activity用代码动态添加布局

在activity中或fragment中动态添加布局

效果

125dddf24d2d9c2984a0c2364a3e4cc3.png3287c2ebe52ed5824a2a81c1ae004bc3.png

项目结构

ed89a61ee8aa540a50e915a112ce9d6a.png

核心代码:

MainActivity

public class MainActivity extends Activity implements OnClickListener {

private Button btn_jiazaibuju;//加载按钮

private LinearLayout yuanbuju;//母布局

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

btn_jiazaibuju.setOnClickListener(this);

}

/**

* 加载布局的按钮点击事件

*/

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn_jiazaibuju:

setView();

break;

}

}

/**

* 加载布局的方法

*/

private ArrayListviews = new ArrayList();//放view的list

private void setView() {

//移除其中的所有view

yuanbuju.removeAllViews();

//给要加载的布局设置参数

LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,

LayoutParams.MATCH_PARENT);

params.leftMargin = 30;

params.rightMargin = 30;

params.topMargin = 30;

//调inflate方法把布局转化成对象

View view1 = View.inflate(this, R.layout.jiedan_item, null);

View view2 = View.inflate(this, R.layout.jiedan_item, null);

View view3 = View.inflate(this, R.layout.jiedan_item, null);

View view4 = View.inflate(this, R.layout.jiedan_item, null);

View view5 = View.inflate(this, R.layout.jiedan_item, null);

//把布局对象放到list中

views.add(view1);

views.add(view2);

views.add(view3);

views.add(view4);

views.add(view5);

//在增强for循环中加载所有布局

for (View view:views) {

yuanbuju.addView(view, 0, params);

}

}

/**

* 初始化原控件

*/

private void init() {

yuanbuju = (LinearLayout) findViewById(R.id.layout_taskfragment_container);

btn_jiazaibuju = (Button) findViewById(R.id.btn_jiazaibuju);

}

}

activity_main.xml

jiedan_item.xml

如果没有明白下载我的例子

例子1动态加载

http://download.csdn.net/detail/zhaihaohao1/8352921

例子2动态加载,并分组

效果图:

06e8d9f80b6546e81661d2617a7ba0aa.png

http://download.csdn.net/detail/zhaihaohao1/8866307

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值