码迷,mamicode.com
首页 > 其他好文 > 详细

LayoutInflater和inflate()

时间:2016-10-20 21:42:11      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

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/

 

LayoutInflater和inflate()

标签:

原文地址:http://www.cnblogs.com/feng-ye/p/5982414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!