核心方法:
1) Activity中使用setContentView(view)
注意参数不再是int layoutId,而是自己创建的布局view
2) addView(view, params)方法
params指定宽高
有些应用虽然使用setContentView(int layoutId)调用了布局文件,但是后面直接找到最外层布局findViewById(layout),然后使用布局的方法removeAllViews()将布局中所有view删除。
下面所有的都是用代码创建出来view并添加,所以运行应用后和查看xml文件的布局显示完全不一致。
1) Activity中使用setContentView(view)
注意参数不再是int layoutId,而是自己创建的布局view
2) addView(view, params)方法
params指定宽高
有些应用虽然使用setContentView(int layoutId)调用了布局文件,但是后面直接找到最外层布局findViewById(layout),然后使用布局的方法removeAllViews()将布局中所有view删除。
下面所有的都是用代码创建出来view并添加,所以运行应用后和查看xml文件的布局显示完全不一致。
通过java代码写的布局效率是最高的。
// 线性布局
LinearLayout view = new LinearLayout(this);
// 设置方向
view.setOrientation(LinearLayout.VERTICAL);
// 添加文本
TextView tv = new TextView(this);
tv.setText("代码创建");
tv.setGravity(Gravity.CENTER);
ViewGroup.LayoutParams paramsTv = new ViewGroup.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
view.addView(tv, paramsTv);
// 添加按钮
Button btn = new Button(this);
btn.setText("点击");
ViewGroup.LayoutParams paramsBtn = new ViewGroup.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
view.addView(btn, paramsBtn);
//显示
setContentView(view);