开发小技巧之进入Activity之后获取控件高度
来源:互联网 发布:网络打印机通讯协议 编辑:程序博客网 时间:2024/06/06 04:42
1.在开发过程中我们有时候需要一进入Activity的时候,就能够获取到控件的高度,
你过你细心的话去在onCreate或者onResume 中加入
height = iv.getHeight(); Log.i("height","height=>"+height);
执行过后发现高度的0,相应的宽度也是0.
这就奇怪了为什么控件的高度,宽度为0 呢,应该Activity在启动的时候,是存在Activity启动流和Activity布局绘制流,但是这两个流是异步,也就是说,在onCreate或者onResume 的时候控件的Activity布局绘制流 这个异步任务可能没有执行完毕,这个时候你去获取控件的高度,获取的是控件高度的默认值,就0。
获取控件高度的方法:
/** * 为Activity的布局文件添加OnGlobalLayoutListener事件监听,当回调到onGlobalLayout方法的时候我们通过getMeasureHeight和getMeasuredWidth方法可以获取到组件的宽和高 */private void initOnLayoutListener() { final ViewTreeObserver viewTreeObserver = this.getWindow().getDecorView().getViewTreeObserver(); viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Log.i(TAG, "开始执行onGlobalLayout()........."); int height = titleText.getMeasuredHeight(); int width = titleText.getMeasuredWidth(); Log.i(TAG, "height:" + height + " width:" + width); // 移除GlobalLayoutListener监听 MainActivity.this.getWindow().getDecorView().getViewTreeObserver().removeOnGlobalLayoutListener(this); } }); }
执行这个方法,只是为了使OnGlobalLayoutListener,执行一次
MainActivity.this.getWindow().getDecorView().getViewTreeObserver().removeOnGlobalLayoutListener(this);
阅读全文
0 0
- 开发小技巧之进入Activity之后获取控件高度
- android小技巧之---获取状态栏高度
- 实用小技巧之-textView内容高度的获取
- 小技巧--获取当前前台显示Activity
- iOS小demo之获取键盘高度
- iOS小demo之获取文字高度
- 【小技巧】获取GridView内的控件
- 【小知识点总结】如何获取到Android控件的高度
- iPhone开发之各种控件高度自适应
- 开发小技巧之在Application中监听App中的Activity的生命周期
- 开发小技巧:jQuery处理自适应内容高度的iframe
- 开发小技巧:jQuery处理自适应内容高度的iframe
- Android开发之小技巧
- android 获取控件高度
- 获取控件的高度
- 获取控件宽高度
- 获取控件的高度
- cmd 进入mysql 小技巧
- zabbix监控mysql最简单的方法
- 马尔可夫链的演示Python
- Python中与字符编码方式有关的一个错误
- Spring Boot : 配置JSP(六)
- Mongodb命令行导入导出文档
- 开发小技巧之进入Activity之后获取控件高度
- 二叉树面试题
- MQ整理—基本介绍
- spring注入properties文件的can not resolve placeholder问题
- 数据结构-栈 JAVA语言实现
- Android的责任链模式
- POI设置单元格内容下拉框选择和单元格提示功能
- JSP和Servlet有哪些相同点和不同点,它们的联系是什么?
- hive 实践练习1 建表 查询