《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宽高的几种方式总结-创新互联
标题链接:https://www.cdcxhl.com/article14/dpgode.html
成都网站建设公司_创新互联,为您提供软件开发、全网营销推广、微信公众号、移动网站建设、外贸建站、虚拟主机
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联