• LayoutInflater和inflate()


    LayoutInflater

        LayoutInflater抽象类是用来加载XML布局文件(UI界面)的.

    作用:

    1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()或View.inflate()来载入,然后也可以通过findByIdView()获取界面的元素;

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

    获得 LayoutInflater 实例的三种方式 (inflate()方法的作用看后面)

    1. LayoutInflater inflater = getLayoutInflater();  //调用Activity的getLayoutInflater()

    例:View view = getLayoutInflater().inflate(R.layout.Setting_view, null);//加载R.layout.Setting_view布局

     

    2. LayoutInflater inflater =  (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View view=inflater.inflate(R.layout.Setting_view, null);//加载R.layout.Setting_view布局

     

    3. LayoutInflater inflater = LayoutInflater.from(context);  

    例:View view = LayoutInflater.from(mContext).inflate(R.layout.Setting_view, null);//加载R.layout.Setting_view布局

     

    View.inflate()方法

            View类和LayoutInflater类都有该方法。但两个类中的该方法作用是一样的,都是用来加载布局的。

            inflate()的作用是加载一个用XML定义的布局文件(UI界面),而后可以使用findViewById()查找该布局文件内的控件,

    而直接使用findViewById则只能从主布局文件(setContentView(R.layout.activity_main)中的R.layout.activity_main布局文件)

    中查找控件。

             用View.inflate()加载布局

           infalte()加载布局文件 
          View   v= View.inflate(this,R.layout.setting_view,null);
          textView = (TextView) v.findViewById(R.id.text);
          textView.setText("Hello");
      
    R.layout.setting_view布局文件
    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/text" android:textColor="@color/colorAccent" android:layout_gravity="center_horizontal"/> </LinearLayout>

    参考:http://blog.csdn.net/lovexieyuan520/article/details/9036673

    http://blog.csdn.net/it1039871366/article/details/9796965

    深入了解:http://blog.csdn.net/guolin_blog/article/details/12921889

    http://bxbxbai.github.io/2014/11/19/make-sense-of-layoutinflater/

  • 相关阅读:
    sqli-labs(十七)
    sqli-labs(十六)(order by注入)
    sqli-labs(十五)(堆叠注入)
    spring boot热部署
    java之定时任务
    python之字符串函数
    java加载配置文件信息
    python之运算符与基本数据类型
    python基础
    python介绍
  • 原文地址:https://www.cnblogs.com/feng-ye/p/5982414.html
Copyright © 2020-2023  润新知