您的位置:首页 > 编程语言 > Java开发

57.动态添加子View(Java/XML两种方式)

2015-12-23 13:16 267 查看
/** * 动态添加子View(Java)[/b] */ private View createViewWithJava() { LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); LinearLayout view = new LinearLayout(this); view.setLayoutParams(lp);//设置布局参数 view.setOrientation(LinearLayout.HORIZONTAL);// 设置子View的Linearlayout// 为垂直方向布局
//定义子View中两个元素的布局 ViewGroup.LayoutParams vlp = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); ViewGroup.LayoutParams vlp2 = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
TextView tv1 = new TextView(this); TextView tv2 = new TextView(this); tv1.setLayoutParams(vlp);//设置TextView的布局 tv2.setLayoutParams(vlp2); tv1.setText("姓名:"); tv2.setText("小明"); tv2.setPadding(calculateDpToPx(50), 0, 0, 0);//设置边距 view.addView(tv1);//将TextView 添加到子View 中 view.addView(tv2);//将TextView 添加到子View 中 return view; }
/** * 动态添加子View(Xml)[/b] */ private View createViewWithXml() { LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); View view = LayoutInflater.from(this).inflate(R.layout.a1_post_params, null);//也可以从XML中加载布局
view.setLayoutParams(lp);//设置布局参数
EditText key = (EditText) view.findViewById(R.id.key); EditText value = (EditText) view.findViewById(R.id.value);
//添加进键值集合 keys.add(key); values.add(value);
return view; }

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: