`

使用inflater实现窗体布局

 
阅读更多
/* 传统的方式 */
  // setContentView(R.layout.main);
  
  /* inflater方式 */
  LayoutInflater inflater = LayoutInflater.from(Inflate.this);// 生成inflater对象
  LinearLayout mainFrame = (LinearLayout) inflater.inflate(R.layout.main,null);// 找到窗体的布局文件

  LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
  this.addContentView(mainFrame, params);

 

通俗的说,inflate就相当于将一个xml中定义的布局找出来.

因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件.

因此如果你的Activity里如果用到别的layout,比如对话框上的layout,你还要设置对话框上的layout里的组件(像图片ImageView,文字TextView)上的内容,你就必须用inflate()先将对话框上的layout找出来,然后再用这个layout对象去找到它上面的组件,:
    Viewview=View.inflate(this,R.layout.dialog_layout,null);
    TextViewdialogTV=(TextView)view.findViewById(R.id.dialog_tv);
    dialogTV.setText("abcd");

如果组件R.id.dialog_tv是对话框上的组件,而你直接用this.findViewById(R.id.dialog_tv)肯定会报错.

三种方式可以生成LayoutInflater
    

LayoutInflaterinflater=LayoutInflater.from(this);
    LayoutInflaterinflater=getLayoutInflater();
   LayoutInflaterinflater=(LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);

 

然后调用inflate方法将xml布局文件转成View
    publicViewinflate(intresource,ViewGrouproot,booleanattachToRoot)

View类中,也有inflate方法
    publicstaticViewinflate(Contextcontext,intresource,ViewGrouproot)

举个例子:通过Inflater加载窗体布局文件

 

 

分享到:
评论

相关推荐

    用Deflater与Inflater实现字节的压缩与解压

    上面源码的文件,iteye要求要压缩 请您解压一下 博文链接:https://yangxiutian.iteye.com/blog/1659893

    inflater三种用法

    转载的三种inflater的用法,主要是dialog、fragment会用到。

    Android编程实现Toast自定义布局简单示例

    本文实例讲述了Android编程实现Toast自定义布局的方法。分享给大家供大家参考,具体如下: 不知道各位客官是不是觉得系统的toast的信息很难看呢,默认的但黑色背景,毫无色彩。 那么接下来我就教大家用最简单的方式...

    Android inflater 用法及不同点

    在 实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。这篇文章主要介绍了Android inflater 用法,需要的朋友可以参考下

    Android代码-BubblePopupWindow

    Android 实现各个方向的气泡弹窗,可控制气泡尖角偏移量。 截图 依赖 dependencies { compile 'com.yuyh.bubble:library:1.0.0' } 使用 默认弹窗BubblePopupWindow leftTopWindow = new BubblePopupWindow...

    Android LayoutInflater加载布局详解及实例代码

    对于有一定Android开发经验的同学来说,一定使用过LayoutInflater.inflater()来加载布局文件,但并不一定去深究过它的原理,比如 1.LayoutInflater为什么可以加载layout文件? 2.加载layout文件之后,又是怎么变成供...

    Android中LayoutInflater.inflater()的正确打开方式

    主要给大家介绍了关于Android中LayoutInflater.inflater()的正确打开方式,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧

    LayouInflater

    android LayouInflater 页面跳转 button点击

    Android实现弹出登陆框的方案

    1.首先,我是直接使用AlertDialog来实现,确定是,形状有点难看,而且获得Dialog里面的控件略显麻烦(因为我要做的登陆框有一定的布局),然后就给我就放弃了,可能因为我太水了,不能很好的使用它 2.然后我就使用...

    Android代码-Android-FloatWindow

    1.首先在AndroidManifest.xml中添加使用权限: uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" 2.二行代码实现自定义弹窗view View contentView = inflater.inflate(R.layout.layout_...

    安卓单任务多线程任意断点下载【源码】.rar

    安卓Android单任务多线程任意断点下载【源码】,包括了一个可复用的文件下载服务类用于获取实时更新每条线程已经下载的文件长度,可实现多任务下载  1.创建XML文件,将要生成的View配置好  2.获取系统服务...

    Android代码-AndroidSkinAnimator

    了解过换肤框架的同学知道,利用setFactory(LayoutInflater inflater, LayoutInflaterFactory factory)可以在不更新布局文件的情况下替换布局中View为自定义View,并且对开发者透明。利用这个原理我们可以把原生的...

    RecyclerViewPager-一个基于RecyclerView实现的ViewPager,支持类似于gallary的fling操作.zip

    介绍:一个基于RecyclerView实现的ViewPager,支持类似于gallary的fling操作。点击上面"下载源码" 按钮,可以下载完整的demo。其中recyclerview是android-support中的依赖项目,RecyclerViewPager是主项目。运行效果...

    Android SimpleAdapter适配器使用详解

    Android的AdapterView用的比较多,ListView,GridView,Spinner等,原生的BaseAdapter对ViewHolder没有支持,每次都要,定义内部类,inflater根布局,对item内部view设置clicklistener并转发到adapter的调用者等。...

    Android 中级应用 一 LayoutInflater 的使用

    LayoutInflater Layout 与 Inflater[扩充]两个单词的合并,可以理解为:当前Activity 布局的扩充.

    tinyorm-plugin-boolean-inflater-deflater

    tinyorm-plugin-boolean-inflater-deflater 待定 概要 待定 描述 待定 作者 moznion ( ) 执照 The MIT License (MIT) Copyright :copyright: 2015 moznion, http://moznion.net/ <moznion> Permission is hereby ...

Global site tag (gtag.js) - Google Analytics