zoukankan      html  css  js  c++  java
  • 布局加载的方法以及参数说明

    布局加载的方式:

    listview中适配器getView方法里获取获取布局控件的方法:

    //第一种--获得布局加载器
    LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = layoutInflater.inflate(R.layout.listview_item_city, null);


    //第二种
    LayoutInflater layoutInflater2 = LayoutInflater.from(MainActivity.this);
    View view = layoutInflater2.inflate(R.layout.listview_item_city, null);


    //第三种
    LayoutInflater layoutInflater = MainActivity.this.getLayoutInflater();
    View view = layoutInflater.inflate(R.layout.listview_item_city, null);


    //第四种
    View view = View.inflate(MainActivity.this, R.layout.listview_item_city, null);

    第四种与第二种基本相同,第四种方式的内部使用的是第二种

    View.inflate(MainActivity.this, R.layout.listview_item_city, null) = LayoutInflater.from(MainActivity.this).inflate(R.layout.listview_item_city, null)

    而第二种与第一种基本相同

    LayoutInflater.from(MainActivity.this).inflate(R.layout.listview_item_city, null) = 

    (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE).inflate(R.layout.listview_item_city, null)

    LayoutInflater的使用:

       LayoutInflater的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如  Button、TextView等)。

     具体作用:

     1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;

    2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素

    参数说明:
      LayoutInflater.from(MainActivity.this).inflate(int Resource, ViewGroup parent,boolean attachToRoot);

    参数一:资源id  参数二:加载view布局的父布局(例如,listview)  参数三:是否添加到父布局

    parent为null: attachToRoot不管设置为什么值,都是没有用的,同时这个布局的最外层参数就没有效了

    parent不为null:

      attachToRoot为false,表示不加载父布局,返回的是当前view视图的布局

      attachToRoot为true,表示加载父布局,返回的是包含所有view视图的父布局 

      其实View必须存在于一个父布局中,这样layout_width和layout_height才会有效,因为这两个参数是相对于父布局中的宽高

    所以:inflate(int resource, ViewGroup root, boolean attachToRoot)的第二个参数不为空,resource的最外层布局参数才会有效,否则就无效了

     

  • 相关阅读:
    异常处理
    反射4中内置函数
    property装饰器与继承
    封装
    面向对象编程
    面向对象编程
    项目开发规范
    logging模块
    22. 一个题来探查对 字符串,指针,数组三方面的关联使用方面的概念是否清晰,分析下面三个printf打印什么?
    21. 让指针数组结尾带NULL,使遍历时不依靠计算整个数组大小就可以在结尾遍历结束
  • 原文地址:https://www.cnblogs.com/fangg/p/5916043.html
Copyright © 2011-2022 走看看