首页 > 代码库 > View的使用和学习(一)
View的使用和学习(一)
学习链接
http://blog.csdn.net/guolin_blog/article/details/12921889
我的笔记
1, 什么是LayoutInflater
先来看构造方法 LayoutInflater flater = LayoutInflater.from(context) 这里的这个参数说的就是获得这个activity的LayoutInflater
比如我有一个button的XML文件,我要构造出来这个BUTTON的 view
就这样做 Button button1 = flater.inflate(R.layout.button_activity,null) 第一个参数是sourceId构造哪一个的的XMLView,第二个是父文件,这里写的Nul啦。就是没有
2,如何通过LayoutInflater向一个布局文件里添加这个button
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.container);
获得了这个布局文件的ID。
然后添加这个button 进去 linearLayout.addView(button)
3,重点。
添加button后,无论如何修改button的layout_width或者layout_height。都不能够改变button的样式。
这是因为View的大小是要根据其所在的Layout才能测定的。当我加上了一个Framelayout后,就能够轻松的修改它的高度和宽度了
问题:为什么直接设定一个main_activity可以布局它的大小?
回答:这个main_activity其实是有一个默认的FramLayout包裹在外面的。
看代码测试
public class MainActivity extends Activity {
private LinearLayout mainLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainLayout = (LinearLayout) findViewById(R.id.main_layout);
ViewParent viewParent = mainLayout.getParent();
Log.d("TAG", "the parent of mainLayout is " + viewParent);
}
}
结果:the parent of mainLayout is android.widget....
可以看到的确是有这个东西存在的
View的使用和学习(一)