首页 > 其他 > 详细

View的使用和学习(一)

时间:2014-08-27 00:21:07      阅读:349      评论:0      收藏:0      [点我收藏+]

学习链接

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的使用和学习(一)

原文:http://www.cnblogs.com/BillionWong/p/3938479.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!