Android 中LayoutInflater.inflate()方法的介绍
发布时间 - 2026-01-11 03:16:59 点击率:次Android 中LayoutInflater.inflate()方法的介绍

最近一直想弄明白LayoutInflater对象的inflate方法的用法,今天做了实例。
<LinearLayout
android:id="@+id/ll_item_Group"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="#FF0000"
android:orientation="vertical" >
</LinearLayout>
itemGroup = (LinearLayout) findViewById(R.id.ll_item_Group);
这个作为itemGroup对象。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/view_content"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#4169E1"
android:orientation="horizontal" >
</LinearLayout>
<RelativeLayout
android:id="@+id/view_todo"
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="#00008B" >
</RelativeLayout>
</LinearLayout>
这个作为include引用的view。测试代码如下:(inflater是LayoutInflater对象的实例,获取方法是:inflater = LayoutInflater.from(this),其它两种方法自己百度)
View v1 = inflater.inflate(R.layout.el_include, null);
View v3 = inflater.inflate(R.layout.el_include, itemGroup, false);
View v2 = inflater.inflate(R.layout.el_include, itemGroup);
View v4 = inflater.inflate(R.layout.el_include, itemGroup, true);
测试结果是:
1、V1和V3在Activity里显示效果一样,都是itemGroup原来的内容,V1和V3都是R.layout.el_include里的View对象。
2、V2和V4在Activity里显示效果一样,都是itemGroup添加R.layout.el_include里的内容之后的。V2和V4对象都是加了R.layout.el_include的itemGroup。
V2和V4在Activity里显示效果一样说明itemGroup没有改变!
V2和V4在Activity里显示效果一样说明itemGroup发生了改变,都是将R.layout.el_include里的内容添加到了itemGroup之后的View
那么merge和include的区别是:
include所引用的就是一个独立的View,而merge引用的View必须放到一个ViewGroup中。如下例:
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/view_content"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#4169E1"
android:orientation="horizontal" >
</LinearLayout>
<RelativeLayout
android:id="@+id/view_todo"
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="#800080" >
</RelativeLayout>
</merge>
R.layout.el_marge 引用必须是这样的:
View v = inflater.inflate(R.layout.el_marge, itemGroup, true);
否则报错:<merge /> can be used only with a valid ViewGroup root and attachToRoot=true
也就是说:merge是为了减少include里的根ViewGroup,那么inflate的marge必须放到ViewGroup中。
网上也有老说到marge和framelayout,其实我觉得没有联系。就是R.layout.el_marge若不添加一个ViewGroup中的它里面的元素而已规则和FrameLayout一样。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# 中LayoutInflater.inflate()的使用方法
# LayoutInflater.inflate()如何使用
# Android开发实现自定义Toast、LayoutInflater使用其他布局示例
# Android中LayoutInflater.inflater()的正确打开方式
# Android中使用LayoutInflater要注意的一些坑
# Android布局加载之LayoutInflater示例详解
# Android LayoutInflater加载布局详解及实例代码
# Android LayoutInflater深入分析及应用
# Android LayoutInflater.inflate()详解及分析
# Android 老生常谈LayoutInflater的新认知
# 都是
# 显示效果
# 也有
# 我觉得
# 是这样
# 如有
# 两种
# 说到
# 希望能
# 报错
# 谢谢大家
# 若不
# 是为了
# 疑问请
# 也就是说
# 发生了
# 结果是
# 网上
# gt
# java
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
用v-html解决Vue.js渲染中html标签不被解析的问题
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
iOS中将个别页面强制横屏其他页面竖屏
如何快速使用云服务器搭建个人网站?
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
Laravel如何创建自定义Facades?(详细步骤)
高防服务器租用如何选择配置与防御等级?
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Android GridView 滑动条设置一直显示状态(推荐)
佛山网站制作系统,佛山企业变更地址网上办理步骤?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
如何在阿里云高效完成企业建站全流程?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
晋江文学城电脑版官网 晋江文学城网页版直接进入
如何确认建站备案号应放置的具体位置?
如何用低价快速搭建高质量网站?
黑客如何通过漏洞一步步攻陷网站服务器?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
Thinkphp 中 distinct 的用法解析
高端建站三要素:定制模板、企业官网与响应式设计优化
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
Python高阶函数应用_函数作为参数说明【指导】
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel如何使用Blade模板引擎?(完整语法和示例)
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
Laravel如何使用Service Container和依赖注入?(代码示例)
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
微信小程序 wx.uploadFile无法上传解决办法
如何快速搭建虚拟主机网站?新手必看指南
如何续费美橙建站之星域名及服务?
,在苏州找工作,上哪个网站比较好?
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
高性价比服务器租赁——企业级配置与24小时运维服务
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
网站制作壁纸教程视频,电脑壁纸网站?
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化

