我的android审视之路---view2

来源:互联网 发布:迅龙数据恢复软件app 编辑:程序博客网 时间:2024/05/13 09:09

       女朋友去了出差,晚上睡得太早也无聊,写写字吧

       这篇文章主要是复习一下关于view的一下常识理解,就是一些我们可能经常用到,但又不去注意的类或者方法。

      第一个场景:我们会在Activity的生命周期的入口onCreate里面调用setContentView这个函数,我们xml里面设计的layou就能一下子蹦到我们的手机屏幕上来。

       这里我们一般习惯用这个setContentView函数来读xml文件,然后用findViewById这个函数来挨个或者其中子viewid。其实还有另一种方法可以获取每一个子viewid,那就是LayoutInflater.inflate来获取。

         这两种方式的区别,其中前者的意义就在于找到这个xml,获取其中的子view并显示出来;后者的意义在于获得这个xml里面每一个子viewid,即获得这个layout,其实是隐藏的,我们得到的仅仅是这个子view的实例,用于后续的操作。简而言之,setContentViewfindViewById是为了获得view而显示,LayoutInflater.inflate是为了获得这个实例供后续用,不用是不会显示的。所以,当我们进入一个页面需要加载显示布局时,此时会在入口使用前者,如果这个页面还有一些子view,比如对话框之类的,我们就会用到后者来加载xml

       我们讲一下LayoutInflater.inflate这个构造方法

public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot) {

        这三个参数怎理解呢?

        第一个:很明显,把一个layout资源加载进来,R.layout.***;

        第二个:第一个参数加载进来相当于获取到这个xml的实例,它还需要一个载体,没错,第二个参数就是他的载体,即这个layout是放在哪里上面的,一般回事LinearLayout;

        第三个:是不是直接就附加这个layout到这个载体上面了?如果是的话,哈哈,那这个layout就死跟着你咯,相当于你只能有一个老婆;但是如果你设为false的话,载体在通过addView添加这个view,然后你就可以自由的add和remove了,想要就要,不要就甩,酷吧!



~~~~~这是一篇还没有写完的文章,还是先睡觉吧

0 0
原创粉丝点击