【Android面试八股文】在onResume中是否可以测量宽高?

文章目录

  • 一、在onResume中是否可以测量宽高
    • 1.1 不一定能够正确的获取view的宽高
    • 1.2 为什么?
  • 二、那么如何在onResume中获取view的宽高呢?
    • 2.0 Android 视图布局和绘制流程
        • Measure, Layout 和 Draw 的顺序
    • 2.1 View 的 post 方法
      • 2.1.1 handler.post(Runnable)和handler.postDelay都不行
      • 2.1.1 View.post(Runnable)可以
      • 2.1.2 为什么View.post(Runnable) 可以获取到 View 的宽高?
    • 2.2 ViewTreeObserver 的OnGlobalLayoutListener
      • 2.2.1 使用`ViewTreeObserver.OnGlobalLayoutListener` 确保正确测量
      • 2.2.2 为什么 `ViewTreeObserver.OnGlobalLayoutListener` 可以确保正确测量
    • 2.3 使用 LayoutChangeListener
      • 2.3.1 使用`View.OnLayoutChangeListener` 确保正确测量
      • 2.3.2 为什么 `View.OnLayoutChangeListener` 可以确保正确测量
    • 2.4 总结
  • 三、总结

一、在onResume中是否可以测量宽高

1.1 不一定能够正确的获取view的宽高

这个问题答案是:不一定能够正确的获取view的宽高,然后我们要分析原因,然后我们还要讲解解决办法。

  • 如果是activity 启动后第一次进入onResume 生命周期,那么获取到的View的宽高是错误的;

  • 如果是从其他activity回到当前activity而执行的onResume方法,那么就能够获取到View的宽高。

1.2 为什么?

究其原因如下:

首先我们要找到系统调用 onResume 的地方,大家可以看到 ActivityThread 类,在这个类中有一个函数handleResumeActivity,这个函数在下面我们只保留了核心代码。

handleResumeActivity() {//...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/32367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【洛谷P3366】【模板】最小生成树 解题报告

洛谷P3366 -【模板】最小生成树 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出 orz。 输入格式 第一行包含两个整数 N , M N,M N,M,表示该图共有 N N N 个结点和 M M M 条无向边。 接下…

Hive笔记-5

240619-Hive笔记-5 6.2.2 全表和特定列查询 1) 全表查询 hive (default)> select * from emp; select 查看你要查看的信息 from 你要从哪张表里面查 2) 选择特定列查询 hive (default)> select empno, ename from emp; 注意: (1&#xff0…

HTML(12)——背景属性

目录 背景属性 背景图 背景图平铺方式 背景图位置 背景图缩放 背景图固定 背景属性 属性描述background-color背景色background-image (bgi)背景图background-repeat (bgr)背景图平铺方式background-position (bgp)背景图位置background-size (bgz)背景图缩放backgro…

scale()函数详解

scale()函数是R语言中用于标准化和中心化数据的一个函数。这个函数通常用于数据预处理,以便于后续的分析和建模。下面是对scale()函数的详细介绍: 用法 scale(x, center TRUE, scale TRUE)参数 x: 一个数值型向量、矩阵或数据框,是需要进…

c++编译器优化不显示拷贝构造函数

一.错误情景&#xff08;无法打印拷贝函数&#xff09; #include<iostream> using namespace std;class person { public:person(){cout << "person默认构造函数调用" << endl;}person(int age){cout << "有参构造函数调用" <…

Zookeeper 集群数据视图一致性原理

Zookeeper 集群数据视图一致性原理 在 Zookeeper 中,单一系统映像(Single System Image,SSI)指的是 Zookeeper 集群对外部客户端呈现为一个单一、一致的系统。这意味着无论客户端连接到集群中的哪 个节点,它们看到的数据和系统状态都是一致的,就像连接到同一个单一系统一…

SUSE linux的快照和恢复

snapper用于创建和管理文件系统快照&#xff0c;并在需要时实现回滚&#xff0c;它还可以用于创建用户数据的磁盘备份。snapper使用btrfs文件系统或者精简配置的被格式化成XFS或EXT4的LVM卷。snapper可以通过命令行或YaST来进行管理。 btrfs是一种copy-on-write文件系统&#x…

R语言数据分析案例33-基于logistic回归下的信用卡违约情况分析

一、选题背景 随着互联网产业的蓬勃发展&#xff0c;传统金融行业开始向着金融互联网化和互联网金融快速转型。网络信贷、信用卡等凭借门槛低、快速便捷、高收益等特点&#xff0c;借助互联网平台存在的优势&#xff0c;迅速成长。然而高收益的背后也存在着高风险&#xff0c;…

2024年,业绩大爆发的企业,都做对了一件事

作为新质生产力之一的AI技术&#xff0c;已经完成了从实验室到场景应用的“惊险一跃”&#xff0c;这背后离不开云计算、大数据技术的日趋成熟。与此同时&#xff0c;大模型、柔性计算等创新的云基础设施解决方案&#xff0c;为企业降本增效、快速高质量地发展&#xff0c;提供…

从零开始精通Onvif之用户管理

&#x1f4a1; 如果想阅读最新的文章&#xff0c;或者有技术问题需要交流和沟通&#xff0c;可搜索并关注微信公众号“希望睿智”。 概述 用户管理是Onvif协议的重要组成部分&#xff0c;它允许系统管理员通过网络接口创建、删除、修改用户账户&#xff0c;并分配不同的权限&am…

【Chrome】用户可以手动管理和删除第三方Cookie

在Google Chrome浏览器中&#xff0c;用户可以手动管理和删除第三方Cookie。以下是删除第三方Cookie的具体步骤&#xff1a; 方法一&#xff1a;通过浏览器设置删除第三方Cookie 打开Chrome浏览器&#xff1a; 打开你的Google Chrome浏览器。 访问设置页面&#xff1a; 点击右…

vue实现不预览PDF的情况下打印pdf文件

前景&#xff1a;默认情况&#xff0c;实现打印需要根据预览的内容进行打印。 但是当只有打印按钮存在&#xff0c;不预览文件内容的情况下&#xff0c;实现打印的话&#xff0c;可以通过后端接口返回服务器上PDF的地址,前端通过隐藏的iframe标签中src可实现预览功能 主要是根据…

大数据平台之运维管理工具

大数据平台的自动化运维管理工具能够大幅提升集群管理效率&#xff0c;减少人为错误&#xff0c;提高系统的稳定性和性能。这些工具通常提供集群监控、配置管理、自动化任务执行、安全管理和故障处理等功能。以下是一些主要的大数据平台自动化运维管理工具的详细介绍&#xff1…

Python面向对象编程:类和对象的奥秘

更多Python学习内容&#xff1a;ipengtao.com 在Python的世界中&#xff0c;面向对象编程&#xff08;OOP&#xff09;是构建强大应用程序的基石。本文将带你从零开始&#xff0c;一步步探索类和对象的奥秘&#xff0c;让你的代码更加模块化和可重用。面向对象编程是一种编程范…

【CT】LeetCode手撕—46. 全排列

目录 题目1- 思路2- 实现⭐46. 全排列——题解思路 3- ACM实现 题目 原题连接&#xff1a;46. 全排列 1- 思路 模式识别 模式1&#xff1a;不含重复数字的数组 nums ——> 任意顺序 可能的全排列 ——> 回溯模式2&#xff1a;全排列 ——> 排列问题&#xff0c;不同…

磁力搜索引擎目前有那些,推荐50个以及简单介绍

在互联网上&#xff0c;有许多磁力搜索引擎可以帮助用户快速找到所需的资源。 以下是一些受欢迎的磁力搜索引擎及其简单介绍&#xff1a; Torrentz2&#xff1a;www.xsmxdy.com 一个全球性的BT种子搜索网站&#xff0c;提供大量的资源链接。 RARBG&#xff1a;yinghuacili.c…

用VPS部署聊天机器人有哪些优势?

VPS足以帮助您将人工智能 (AI) 的功能无缝融入聊天机器人并增强客户支持。聊天机器人已迅速成为改善用户体验的首选解决方案&#xff0c;因为它们全天候在线且可编程回答各种问题。 聊天机器人在客户支持方面的作用不容置疑。但所有出色的解决方案都需要出色的网络托管。 VPS…

高性能并行计算华为云实验二:WordCount算法实验

目录 一、实验目的 二、实验说明 三、实验过程 3.1 创建wordcount源码 3.1.1 实验说明 3.1.2 文件创建 3.2 Makefile文件创建与编译 3.3 主机配置文件建立与运行监测 3.3.1 主机配置文件建立 3.3.2 运行监测 三、实验结果与分析 4.1 实验结果 4.2 结果分析 4.2.1 …

Nature | 解锁大脑运动控制机理!哈佛大学与DeepMind实现「AI大脑」控制虚拟老鼠

近日&#xff0c;哈佛大学的研究人员与谷歌DeepMind AI 实验室合作&#xff0c;开发出了一种虚拟大鼠模型&#xff0c;以研究大脑如何控制真实老鼠的运动。这个创新的模型准确地模拟了在真实大鼠身上观察到的神经活动&#xff0c;可以用于探讨大脑是如何控制动物的运动行为。 …

c++重载输出流(<<)和输入流(>>)

一.重载输出流 在C中&#xff0c;可以重载输出流运算符&#xff08;<<&#xff09;来自定义对象的输出方式。重载输出流运算符允许我们以自定义的方式将对象输出到标准输出流或其他输出流中。 以下是关于重载输出流运算符&#xff08;<<&#xff09;的几个知识点…