Android获得View宽高的几种方式总结-创新互联

《Android开发艺术探索》笔记:

创新互联科技有限公司专业互联网基础服务商,为您提供中国电信成都枢纽中心高防主机,成都IDC机房托管,成都主机托管等互联网服务。

在Activity的onCreate()或者onResume()中去获得View的高度的时候不能正确获得宽度和高度信息,这是因为 View的measure过程和Activity的生命周期不是同步执行的,因此无法保证Activity执行了onCreate onStart onResume时,某个View已经测量完毕了,如果还没有测量完,那么获得的宽高就是0。可以通过下面几种方式来获得:

1、onWindowFocusChanged

onWindowFocusChanged:View已经初始化完毕,宽高已经有了,需要注意onWindowFocusChanged会被调用多次,Activity得到焦点和失去焦点都会执行这个回调,见下图:


1、Activity首次进入的时候执行的方法


2、跳转到另一个Activity时


3、返回到当前Activity时
可见当执行onResume和onPause时,onWindowFocusChanged都会被调用。

 @Override
 public void onWindowFocusChanged(boolean hasFocus) {
   super.onWindowFocusChanged(hasFocus);
   if (hasFocus) {
     //获得宽度
     int width = view.getMeasuredWidth();
     //获得高度
     int height = view.getMeasuredHeight();
   }
 }

本文名称:Android获得View宽高的几种方式总结-创新互联
文章位置:http://bzwzjz.com/article/dpgode.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 盐亭网站设计 成都网站建设 重庆企业网站建设 定制网站设计 成都网站制作 成都网站建设 成都定制网站建设 成都网站制作 营销网站建设 企业网站设计 成都网站建设公司 营销型网站建设 企业网站建设公司 做网站设计 成都网站设计 重庆网站建设 成都商城网站制作 网站制作公司 企业网站设计 四川成都网站设计 公司网站建设 成都网站建设