inflate函数及其使用例子 笔记

2023-05-16



LayoutInflater的inflate函数用法详解

LayoutInflater作用是将layout的xml布局文件实例化为View类对象。获取LayoutInflater的方法有如下三种

LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.main, null);
 
LayoutInflater inflater = LayoutInflater.from(context); (该方法实质就是第一种方法,可参考源代码)
View layout = inflater.inflate(R.layout.main, null);
 
LayoutInflater inflater = getLayoutInflater();(在Activity中可以使用,实际上是View子类下window的一个函数)
View layout = inflater.inflate(R.layout.main, null);

setContentView inflate 的区别

setContentView()一旦调用, layout就会立刻显示UI;而inflate只会把Layout形成一个以view类实现成的对象,有需要时再用setContentView(view)显示出来。一般在activity中通过setContentView()将界面显示出来,但是如果在非activity中如何对控件布局设置操作了,这就需要LayoutInflater动态加载。

public View inflate(int Resourece,ViewGroup root)
作用:填充一个新的视图层次结构从指定的
XML资源文件中
reSource
ViewlayoutID
root
 生成的层次结构的根视图
return 
填充的层次结构的根视图。如果参数root提供了,那么root就是根视图;否则填充的XML文件的根就是根视图。

其余几个重载的inflate函数类似。



例子:

1.普通Activity中使用inflate函数1
View view = View.inflate(this, R.layout.splash_animation, null);
//splash_animation.xml file
setContentView(view);


2.普通Activity中使用inflate函数2
View selectView = getLayoutInflater().inflate(R.layout.list, null);

final ListView listview = (ListView)(selectView.findViewById(R.id.list));
new AlertDialog.Builder(BlockList.this).setView(selectView).setPositiveButton("OK", new DialogInterface.OnClickListener(){
});


3.在Fragment类的onCreateView中利用形参中的LayoutInflator inflater
public class AuctionListFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater
, ViewGroup container, Bundle savedInstanceState)
{
// 加载/res/layout/目录下的function_list.xml布局文件
View rootView = inflater.inflate(R.layout.auction_list,
container, false);
auctionList = (ListView) rootView.findViewById(
R.id.auction_list);


return rootView;
}
}


4.在Fragment类的自定义函数中使用 getActivity().getLayoutInflater() .inflate()....

public class ViewItemFragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater
, ViewGroup container, Bundle savedInstanceState)
{

}


private void viewItemDetail(int position)
{

// 加载detail.xml界面布局代表的视图
View detailView = getActivity().getLayoutInflater()
.inflate(R.layout.detail, null);


}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

inflate函数及其使用例子 笔记 的相关文章

  • 【总结】浏览器 User-Agent 大全

    一 基础知识 Http Header之User Agent User Agent中文名为用户代理 xff0c 是Http协议中的一部分 xff0c 属于头域的组成部分 xff0c User Agent也简称UA 它是一个特殊字符串头 xff
  • Visual Studio 2017各版本安装包离线下载、安装全教程

    微软最近发布了正式版Visual Studio 2017并公开了其下载方式 xff0c 不过由于VS2017采用了新的模块化安装方案 xff0c 所以微软官方并未提供ISO镜像 xff0c 但是官方提供了如何进行离线下载的方案给需要进行离线
  • Python基础入门笔记(一)

    前言 xff08 认识Python xff09 既然学习 Python xff0c 那么至少得了解下这门语言 xff0c 知道 Python 代码执行过程吧 Python 的历史有兴趣的百度百科下就有 xff0c 这个不多说了 1 我们先来
  • 小米MIUI线刷包cust.img、system.img精简教程(二)

    接上一篇文章 xff0c 如何 xff1a https blog csdn net cfq1491 article details 81260068 一 精简cust img文件 使用蘑菇助手打开cust img文件 xff0c 找到D M
  • Spring学习笔记1

    前言 Spring框架的学习路线 xff1a Spring第一天 xff1a Spring的IOC容器之XML的方式 xff0c Spring框架与Web项目整合Spring第二天 xff1a Spring的IOC容器之注解的方式 xff0
  • GitHub学生包的介绍与申请

    1 Github学生包介绍 1 Github学生包是什么 xff1f GitHub 学生包是一个由 GitHub 免费提供给学生的福利 xff0c 里面包括了计算机专业可能用到的很多付费资源 xff0c 其中包含一系列网站服务的打折 代金券
  • (二)GitHub的使用随记

    一 Git及GitHub的使用 1 突破GitHub单个大文件上传限制 GitHub 上新建的仓库容量大小限制在 1G xff0c 单个文件不能超过 100M xff0c 有 50M 的文件 xff0c 就会警告了 可通过以下命令查找超过
  • Android开发60条技术经验总结

    1 全部Activity可继承自BaseActivity xff0c 便于统一风格与处理公共事件 xff0c 构建对话框统一构建器的建立 xff0c 万一需要整体变动 xff0c 一处修改到处有效 2 数据库表段字段常量和SQL逻辑分离 x
  • OSCP-Fish(GlassFish、SynaMan、查看卸载软件、TotalAV提权)

    目录 扫描 扫描 nmap 192 168 213 168 sS sV p Pn PORT STATE SERVICE VERSION 3389 tcp open ms wbt server 3700 tcp open giop CORBA
  • OSCP-Escape(gif绕过)

    目录 扫描 WEB 扫描 sudo nmap 192 168 233 113 p sS sV PORT STATE SERVICE VERSION 22 tcp open ssh OpenSSH 7 6p1 Ubuntu 4ubuntu0
  • webshell gif图片文件绕过

    目录页 dev index php允许GIF上传 尝试上传不同的文件类型将被拒绝 这可以通过首先上传合法的GIF文件来绕过 使用了一个小的GIF nbsp https giphy com gifs obi won hvE0PhVAnGQAo
  • Linux 设置用户拥有root权限(sudo权限)

    echo lt 用户名 gt ALL 61 ALL ALL ALL gt gt sudoers
  • OSCP-Nickel(爆破pdf、本地http提权)

    目录 扫描 HTTP 提权 扫描 FileZilla不接受匿名FTP登录 端口21上的SSH和3389上的RDP很少是初始入口点 但是如果遇到一些凭据 可以记住这一点 HTTP 打开Web浏览器并导航到端口8089和3333 用于的HTTP
  • 爆破pdf文件

    安装 apt install pdfcrack 使用 f xff1a 指定被爆破的pdf文件 w xff1a 爆破字典 pdfchack f indesk pdf w rockyou txt
  • 解决Ubuntu 16.04 的应用商店卸载或加载不出来的教程

    ubuntu软件中心偶尔打不开 xff0c 虽然是小问题 xff0c 不过却是为这些头疼 有的时候加载不出来 xff0c 先用下面的试试 sudo apt install python apt 如果不行 xff0c 继续下面的方法 打开终端
  • OSCP-Nappa(修改web源码打开注释、base32)

    目录 扫描 FTP WEB 提权 扫描 FTP 允许匿名ftp 查看共享文件夹中的内容 nbsp 这里有很多文件 无法在某些文件中找到直接凭据 继续枚举端口8080上的Web服务 可以从索引页中列举出许多用户 WEB
  • Linux系统用户下的 .bashrc 文件

    目录 介绍 修改 bashrc进行个性化设置 实例1 实例2 介绍 程序文件 这个文件主要保存个人的一些个性化设置 xff0c 如命令别名 路径等 也即在同一个服务器上 xff0c 只对某个用户的个性化设置相关 bashrc 为每一个运行b
  • curl 上传webshell到web目录

    目录 环境 curl上传文件 结果 环境 curl上传文件 cat codeexec php lt php system GET 39 cmd 39 gt curl T cocdeexec php u 39 admin admin 39 h
  • MSSQL注入利用xp_cmdshell执行命令(细)

    目录 介绍 检查我们是否可以堆叠查询 检查权限 阅读命令输出 扩展 介绍 与MySQL不同 MSSQL提供了xp cmdshell 它允许我们执行系统命令 在xp cmdshell中 大多数时候我们都有特权使
  • ssh私钥爆破(Enter passphrase for key )

    环境背景 1 有私钥 2 登录还是询问密码 3 改成600 使用的时候提示Enter passphrase for key 解决方法 1 用john爆破私钥的passphrase 2 ssh2john key gt hash 3 然后joh

随机推荐