LayoutInflater

SRAM vs RRAM:存算一体芯片选型指南(含最新技术对比) 本文深入对比了SRAM与RRAM在存算一体芯片设计中的核心差异,为硬件工程师和架构师提供实战选型指南。文章从技术本质、性能、功耗、成本及设计风险等多维度剖析,指出SRAM基于成熟CMOS工艺,适合高精度、低延迟场景;而RRAM凭借非易失性和高密度潜力,在超低功耗、固定模型应用中优势明显。决策需综合项目预算、上市时间及技术储备。 阅读详情

 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如 Button、TextView等)。
具体作用:
1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;

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

LayoutInflater 是一个抽象类,在文档中如下声明:

Java代码  收藏代码
  1. public abstract class LayoutInflater extends Object    

 获得 LayoutInflater 实例的三种方式:

Java代码  收藏代码
  1. 1. LayoutInflater inflater = getLayoutInflater();  //调用Activity的getLayoutInflater()  
  2.   
  3. 2. LayoutInflater localinflater =  (LayoutInflater)context.getSystemService  
  4.   
  5.                                                  (Context.LAYOUT_INFLATER_SERVICE);  
  6.   
  7. 3. LayoutInflater inflater = LayoutInflater.from(context);     
  8.   
  9.    

 其实,这三种方式本质是相同的,从源码中可以看出:

getLayoutInflater():

Activity 的 getLayoutInflater() 方法是调用 PhoneWindow 的getLayoutInflater()方法,看一下该源代码:

Java代码  收藏代码
  1. public PhoneWindow(Context context) {    
  2.         super(context);    
  3.         mLayoutInflater = LayoutInflater.from(context);    
  4. }    

 可以看出它其实是调用 LayoutInflater.from(context)。

LayoutInflater.from(context):

Java代码  收藏代码
  1. public static LayoutInflater from(Context context) {     
  2.     LayoutInflater LayoutInflater =     
  3.             (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);     
  4.     if (LayoutInflater == null) {     
  5.         throw new AssertionError("LayoutInflater not found.");     
  6.     }     
  7.     return LayoutInflater;     
  8. }   

 

可以看出它其实调用 context.getSystemService()。

 

结论:所以这三种方式最终本质是都是调用的Context.getSystemService()。

 

inflate 方法 
通过 sdk 的 api 文档,可以知道该方法有以下几种过载形式,返回值均是 View 对象,如下:

Java代码  收藏代码
  1. public View inflate (int resource, ViewGroup root)    
  2. public View inflate (XmlPullParser parser, ViewGroup root)    
  3.     
  4. public View inflate (XmlPullParser parser, ViewGroup root, boolean attachToRoot)    
  5.     
  6. public View inflate (int resource, ViewGroup root, boolean attachToRoot)   

 1:

  public View inflate (int resource, ViewGroup root) 
  reSource:布局文件的id 比如 R.id.xxx  为该方法传入哪个布局文件 该方法就以该布局文件的样式来展示相应的界面(或控件)
  root:如果为null,就将resource指向的布局文件的根(标签)作为此次inflate方法载入的布局文件时该文件所使用的根
          如果!null,  则将root当作infalte方法载入的布局文件的根。

 2:

  //自定义xml文件当作布局文件

  public View inflate ( XmlPullParser parser, ViewGroup root) 
   parser:你需要解析xml的解析接口
   root:如果null,就将parser解析器解析出来的文件的根(标签)作为此次inflate方法载入的布局文件时该文件所使用的根
          如果!null,  则将root当作infalte方法载入的布局文件的根。

 3:

 //自定义xml文件当作布局文件

  public View inflate ( XmlPullParser parser, ViewGroup root, boolean attachToRoot) 
   parser:你需要解析View的xml的解析接口
   root:如果null,就将parser解析器解析出来的文件的根(标签)作为此次inflate方法载入的布局文件时该文件所使用的根
          如果!null,  则将root当作infalte方法载入的布局文件的根。
   attachToRoot:
   true:也就将此解析的xml作为View根
   false:则为默认的xml,做为根视图View

 4:

  public View inflate (int resource, ViewGroup root, boolean attachToRoot) 

  resource:布局文件的id 比如 R.id.xxx  为该方法传入哪个布局文件 该方法就以该布局文件的样式来展示相应的界面(或控件)

  root:

如果为null,就将resource指向的布局文件的根(标签)作为此次inflate方法载入的布局文件时该文件所使用的根
          如果!null,  则将root当作infalte方法载入的布局文件的根。

  attachToRoot:

  ture:也就将此解析的xml作为View根
  fase:则为默认的xml,做为根视图View

 

示意代码:

Java代码  收藏代码
  1. LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);    
  2.     
  3. View view = inflater.inflate(R.layout.custom, (ViewGroup)findViewById(R.id.test));    
  4.     
  5. //EditText editText = (EditText)findViewById(R.id.content);// error    
  6. EditText editText = (EditText)view.findViewById(R.id.content);   

 同时在此讲讲让我去API中去理解这四个函数的原因吧!嘿嘿!你肯定又会多学一招! 
在Activity中:
大家是否知道,在setContentView(new MySurfaceView(this))后,此Activity中声明的View控件,
如:TextView 为什么引用不到layout布局文件中的控件ID呢!初一看能够应用到,但是为什么编译就报空指针呢!原因:在setContentView(new MySurfaceView(this))后,此时的View变为了根视图了,虽然能应用到TextView对应的ID,但是我在 MySurfaceView中根本就没有这个对象,所以就报空指针咯!解决办法:
View view = LayoutInflater.from(this).inflate(R.layout.passover, null);注:每解析一次都会产生不同的对象 
然后你再引用没问题,使用自如了。

Natural Language Processing 作者:禅与计算机程序设计艺术 1.简介 自然语言处理(NLP)是研究如何使计算机理解和处理自然语言的理论和方法,目的是让电脑更好的理解、获取、生成、存储和沟通人类语言。20世纪80年代末,IBM的三位博士陈天奇、周博磊和王力雄在贝尔实验室创建了首个自然语言处理系统——“布莱克多·艾森豪威尔”(Bletc 阅读详情

相关推荐

别再手动敲代码了!用STM32CubeMX+FreeRTOS图形化配置,5分钟搞定多任务通信框架

本文详细介绍了如何利用STM32CubeMX和FreeRTOS快速搭建多任务通信框架,大幅提升嵌入式开发效率。通过图形化配置工具,开发者可在5分钟内完成任务调度、时钟配置和内核对象生成,特别适合物联网设备开发。文章还提供了代码优化和调试技巧,帮助开发者轻松应对复杂应用场景。

weixin_30363285的博客 292

LayoutInflater使用与解析

LayoutInflater 与findViewById()区别 LayoutInflater:用来找res/layout/下的xml布局文件,并且实例化 ​ 对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入 findViewById():找xml布局文件下的具体widget控件(如Button、TextView等) ​ 对于一个已经载入的...

mLuoya的博客 6923

新手别怕!用‘东北天’和‘右前上’坐标系,5分钟搞懂惯性导航姿态矩阵(含Python验证代码)

本文通过‘东北天(ENU)’和‘右前上(RFU)’坐标系,详细解析惯性导航中的姿态矩阵概念。包含Python代码验证,帮助新手快速理解坐标变换、欧拉角及旋转矩阵的构建与应用,特别强调有限转动不可交换性与无限转动次序无关的区别。

weixin_29062255的博客 333

关于layoutInflater

转载地址:http://lpqsun-126-com.iteye.com/blog/1158070  在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件

luckyrass的专栏 627

企业微信群机器人配置全攻略:从零到消息推送的完整流程

本文详细介绍了企业微信群机器人的配置与使用全流程,从零开始指导如何创建机器人、获取Webhook地址,到通过HTTP请求发送文本、Markdown、图片及模板卡片等多种消息类型。内容涵盖核心的接口配置、安全实践及实战应用场景,帮助开发与运维团队快速构建自动化消息推送中枢,提升协作效率。

weixin_29231725的博客 847

S32K314 EB配置MCAL全模块讲解【Autosar——1 MCU模块详解】持续更新中

FIRC(fast internal RC Oscillator) :高速内部时钟,固定48MHZ;SIRC(Slow Internal RC Oscillator):低速内部时钟,固定32KHZ;FXOSC(Fast Crystal Oscillator Digital Controller):高速外部晶振(8-40MHZ),根据原理图选型进行配置;SXOSC():外部低速外部时钟,固定输入32.768KHZ;PLL_PHIn_CLK:时钟倍频锁相环时钟范围(640-1280MHZ);

qq_40488886的博客 1786

Android LayoutInflater

本文讲述什么是 LayoutInflater,有何作用,使用场景,以及与 setContentView() 的区别。应用案例请参见我的另一篇博文《Android PopupWindow 仿微信点赞和评论弹出框》。

关注移动端、Web、微信小程序等大前端领域 3375

C++学习(四六六)Multiple parse contexts are available for this file

Note: Multiple parse contexts are available for this file. Choose the preferred one from the editor menu 参考: "Multiple parse contexts" in Qt creator | Qt ForumHi Do you use sessions? https://bugreports.qt.io/browse/QTCREATORBUG-18521 Anyway, its not.

hankern的专栏 4610

View->LayoutInflater

LayoutInflater布局填充器代码

sunshine_guo的博客 1007

macOS Monterey官方镜像高速下载指南(附迅雷链接+兼容性清单)

本文提供macOS Monterey官方镜像的高速下载指南,重点介绍利用迅雷等工具加速下载官方安装包的有效方法。同时,详细列出了系统兼容性清单,帮助用户在下载前确认设备支持,并分享了从下载、验证到安全安装的完整流程与常见问题解决方案。

j7k8l的博客 2200

Multisim 14.0实战:从零搭建可调幅多波形信号发生器(附仿真文件)

本文详细介绍了如何在Multisim 14.0中从零搭建一个可调幅多波形信号发生器,涵盖方波、三角波和正弦波的生成原理与实现步骤。通过核心电路架构解析、关键参数设计及Multisim实战操作,帮助电子工程学习者和硬件工程师掌握信号发生器的设计与调试技巧,并提供仿真文件供实践验证。

nokia的博客 1074

LayoutInflater加载流程

LayoutInflater在日常的Android开发中是经常使用的类,常常用于XML中View的加载相关流程。本文主要总结一些其常见api的源码流程。

柒月 1091

使用字体解密技术爬取懂车帝二手车数据

本文介绍了一种针对懂车帝二手车平台的字体加密数据采集方案。通过抓包分析,识别出关键API接口并解析了字体加密机制,成功实现了价格等敏感数据的解密。方案采用requests库发送POST请求获取JSON数据,利用fontTools解析字体映射关系,建立加密字符到真实数字的转换算法。程序支持多页采集,提取车辆名称、价格、年份等12个维度的信息,并自动保存为Excel格式。技术亮点包括动态字体解析、健壮的数据处理和分页优化,为二手车市场分析提供了可靠的数据支持。文中特别强调数据采集的合法合规性,建议仅用于学术研究

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 1313

Android进阶系列4—从LayoutInflater到setContentView的LayoutInflater

N天前博主面试的时候,面试官问我TextView是如何加载到界面上的。博主说LayoutInflator,interviewer问怎么操作的呢?我说:记不得了。。。翻看郭神的博客,发现早在14年底,我就在他的Android LayoutInflater原理分析,带你一步步深入了解View(一)里面有留言,可能是当时too young,对郭神的讲解不知所云,时隔一年多再看,觉得博主很会讲课,通俗易懂。

Kerwin的学习历程 722

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java layoutinflater_LayoutInflater详解

在日常开发中经常会用到通过资源id去获取view的场景,LayoutInflater这时非常有用。这与我们经常用的findViewById()不一样。LayoutInflater通常用于动态载入的界面,使用LayoutInflater的inflate方法动态接入layout文件;findViewById通常用于在已经载入的界面,使用findViewById()方法来获得其中的界面元素。一 Layo...

weixin_30224993的博客 1050

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

关于LayoutInflater的一些知识

转载请注明出处:http://blog.youkuaiyun.com/binbinqq86/article/details/79603641 LayoutInflater自从我们第一天开发程序,应该就会用到这个类,我第一次接触是在ListView的BaseAdapter,里面的getView方法会使用到,那也是我第一次见,只是简单的知道这样使用能返回一个View。后来需要动态添加布局的时候,也会采用这种方法...

Water的博客 547

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

LayoutInflater如何加载布局?

对于有一定Android开发经验的同学来说,一定使用过LayoutInflater.inflater()来加载布局文件,但并不一定去深究过它的原理,比如 1.LayoutInflater为什么可以加载layout文件? 2.加载layout文件之后,又是怎么变成供我们使用的View的? 3.我们定义View的时候,如果需要在布局中使用,则必须实现带AttributeSet参数的构造方法,这又是为什么

javine的专栏 1601

LayoutInflater解析

LayoutInflater解析在Android中,如果是初级玩家,很可能对LayoutInflater不太熟悉,或许只是在Fragment的onCreateView()中模式化的使用过而已。但如果稍微有些工作经验的人就知道,这个类有多么重要,它是连接布局XMl和Java代码的桥梁,我们常常疑惑,为什么Android支持在XML书写布局?我们想到的必然是Android内部帮我们解析xml文件,Lay

悠悠吾心的专栏 1033

java layoutinflater_LayoutInflater

LayoutInflater ClassDefinitionAssembly:Mono.Android.dllInstantiates a layout XML file into its corresponding Viewobjects.In this article[Android.Runtime.Register("android/view/LayoutInflater", ApiSinc...

weixin_39695374的博客 141

java layoutinflater_LayoutInflater-使用

本文主要讲关于LayoutInflater的用法,让读者更好地了解并使用它。根布局在讲述正文之前。我们必须了解一个叫做根布局的概念。其实很简单。其实就是ViewGroup的最外面的一层布局,我们随便写一个Xml布局文件,布局文件名为view_new.xml:android:layout_width="match_parent"android:layout_height="match_parent"...

weixin_36037417的博客 237

浅谈 LayoutInflater

浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载。 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出。 在 Android 的开发中,想必大家都用过 LayoutInflater 吧。恩,就是平时自定义控件经常会用到的。啊,你连自定义控件都没有用到过?不要紧,那 Activity 中的 setContentView()

I_wait_for_you的专栏 489

LayoutInflater的使用

LayoutInflater的作用主要是用来加载布局的。广泛用于动态添加View布局。相关点 通过在Activity中,setContentView()方法也是用来加载布局的,其实setContentView的内部也是使用LayoutInflater来加载布局的 与findViewById是什么关系?findViewById()是找xml布局文件下具体的widget控件。LayoutInflater

fumier的专栏 546

LayoutInflater类

一、LayoutInflater 类简介 LayoutInflater类作用是将layout的xml布局文件实例化为View类对象,LayoutInflater的作用类似于 findViewById()。不同的是LayoutInflater类是用来找layout文件夹下的xml布局文件,并将该布局实例化为View对象以供使用;而 findViewById()则是寻找当前布局下的具体widge

Abel Joo 尘归尘,土归土。 1855

LayoutInflater使用

一、LayoutInflater 的使用。 LayoutInflater 可以把某个xml的layout转换为一个view对象。 使用LyaoutInflater,首先要获取LayoutInflater 对象,然后调用inflate方法。

sirenyizhi的博客 598

LayoutInflater 用法

在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 具体作用: 1、对于一个没有被载入或者想要动态载入的界面,都需要使用L

smilemilk的博客 476

java layoutinflater_LayoutInflater介绍及例子

复制到剪贴板Java代码Java代码//基本用法publicvoidshowCustomDialog(){AlertDialog.Builderbuilder;AlertDialogalertDialog;ContextmContext=AppActivity.this;//下面俩种方法都可以//LayoutInflaterinflater=getLayoutInflater();...

weixin_36381298的博客 218
上一篇: ListView在滚动时 背景被遮盖的解决办法
下一篇: ListView中getView的原理+如何在ListView中放置多个item
gwpJava
博客等级 码龄14年 11粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值