2019独角兽企业重金招聘Python工程师标准>>>

在View中,有个onFinishInflate方法,当应用从XML加载该组件并用它构建界面之后调用的方法。所以有的同学习惯在该方法中做一些操作,比如通过findViewById获取对象,或者计算宽高等。

不过这有个坑

就是该方法,只有当自定义View,通过在XML中创建时才会调用。

如果是通过new方式创建,则不会执行该方法。

下面是测试的代码:

代码1

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}<com.test.view.InflateView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="Hello World!" />

InflateView生命周期输出

09-01 14:34:53.275 7608-7608/? D/InflateView: onFinishInflate
09-01 14:34:53.285 7608-7608/? D/InflateView: onAttachedToWindow
09-01 14:34:53.290 7608-7608/? D/InflateView: onMeasure
09-01 14:34:53.290 7608-7608/? D/InflateView: onMeasure
09-01 14:34:53.300 7608-7608/? D/InflateView: onMeasure
09-01 14:34:53.300 7608-7608/? D/InflateView: onMeasure
09-01 14:34:53.395 7608-7608/? D/InflateView: onMeasure
09-01 14:34:53.395 7608-7608/? D/InflateView: onMeasure
09-01 14:34:53.395 7608-7608/? D/InflateView: onLayout

可以看出,输出了onFinishInflate

代码2

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);InflateView view = new InflateView(this);setContentView(view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));}

InflateView生命周期输出

09-01 14:34:16.020 7608-7608/? D/InflateView: onAttachedToWindow
09-01 14:34:16.020 7608-7608/? D/InflateView: onMeasure
09-01 14:34:16.150 7608-7608/? D/InflateView: onLayout
09-01 14:34:16.180 7608-7608/? D/InflateView: onMeasure
09-01 14:34:16.180 7608-7608/? D/InflateView: onLayout

可以看出没有执行onFinishInflate

转载于:https://my.oschina.net/android520/blog/740988

Android onFinishInflate理解相关推荐

  1. Android onFinishInflate 的理解

    onFinishInflate  是添加在layout xml里面的view 被LayoutInflater 解析完addview 之后再回调的onFinishInflate 方法. 构造函数是实例化 ...

  2. Android深入理解Fragment

    Fragment 目录 思维导图 概述 设计原因 基本使用 xml 声明 代码设置 添加没有 UI 的 fragment 生命周期 管理 Fragment 和执行事务 与 Activity 通信 常见 ...

  3. Android 深入理解 ANR 触发原理:Service

    一.概述 ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过 ...

  4. Android深入理解文字绘制:FontMetrics字体测量及其TextPaint介绍

    文章目录 TextPaint介绍 一.FontMetrics 1.1 理论知识 1.2 代码验证 1.3 fontMetrics中的变量和文字的size.typeface有关 1.4 绘制居中屏幕的文 ...

  5. android:layout_with=,android – 难以理解layout_alignWithParentIfMissing

    这仅适用于使用RelativeLayout时. 如果您将元素设置为一个其他元素,则表示该元素位于该元素的左侧. 但是如果这个元素会丢失,因为你删除它,例如它将与父对齐. 举个例子 android:la ...

  6. 【Android个人理解(八)】跨应用调用不同组件的方法

    如果情景: 创建两个应用appA和appB,appA包括一个Service,此Service有一个堵塞方法每隔10秒钟产生一个随机数字,例如以下: public int getRandomInt(){ ...

  7. Android深入理解Context(三)Context完全解析

    1· Context类型 我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在哪里?划分界限又是什么呢?其实简单点 ...

  8. Android targetsdkversion理解

    一.Android gradle中常见的版本配置 compileSdkVersion 代表着编译的时候,会采用该api的规范进行代码检查和警告,但是并不会编译进apk中. targetSdkVersi ...

  9. Android 深入理解Android中的自定义属性

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45022631: 本文出自:[张鸿洋的博客] 1.引言 对于自定义属性,大家肯定 ...

最新文章

  1. 功能强大的 C++ redis 客户端库增加至 acl 项目中
  2. Matlab | 数字信号处理:双线性变换法设计IIR数字滤波器
  3. 【实战】用机器学习来提升你的用户增长:(三、预测客户的终生价值)
  4. 全分布式集群搭建总结
  5. php使用pdf2htmlex,转换 HTML 与 PDF 格式文档的神器
  6. shiro学习(18):使用注解实现权限认证和后台管理三
  7. 开放-封闭原则(OCP)
  8. 服务器zip解压php,服务器端解压缩zip的脚本
  9. 如何保证mq的有序性_消息队列如何保证顺序性?
  10. vSAN 6.7培训_第1章-Virtual SAN各版本功能介绍
  11. 讯为开发板的最小LINUX系统烧写及U盘的挂载及卸载
  12. 【Vegas原创】windows2008配置、安装Exchange2007证书(for OWA,RPC over HTTP)
  13. Svn分支管理的使用(三)
  14. 用python做频数分析_如何用Python制作频率(频数)分布表(图)?
  15. 详解关系抽取模型 CasRel
  16. Linux:TCP粘包问题的模拟实现以及解决方法
  17. MP2669GR-锂电池充电管理芯片
  18. Deepin常用命令、系统命令、Vi命令
  19. EasyUI的Vue版本
  20. ios 开发 flurry 资料

热门文章

  1. java ThreadPoolExecutor 分析
  2. linux磁盘配额quota,Linux磁盘配额-Quota
  3. 比亚迪在连遭挫败之后,4月份迎来喜报,夺下热销榜第一名
  4. 以下选项中、不是python对文件的打开模式的是_关于Python文件打开模式的描述,以下选项中错误的是()。...
  5. 小图放大神器 MAX-Image-Resolution-Enhancer
  6. matlab语音信号处理GUI
  7. linux之Oops原理及解析
  8. 科技界的乌托邦之城:远离“房价高交通堵”
  9. IP-GUARD导致微软OFFICE里Onedrive打不开加密和明文文件
  10. 【FPGA基础】关于FPGA的IP核概念