当View为GONE状态时获取View的宽高
来源:互联网 发布:soc管理平台 知乎 编辑:程序博客网 时间:2024/06/07 05:45
首先要明白一点就是一般情况下,我们在Activity里面的onCreate里面获取View宽高,可以采用:
(1)View布局完成的监听
button.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout(){ //here you can get size width = button.getWidth(); height = button.getHeight(); button.getViewTreeObserver().removeGlobalOnLayoutListener(this); }});
(2)post里面进行获取
button.post(new Runnable() { @Override public void run() {//here you can get size width = button.getWidth(); height = button.getHeight(); }});
但是要注意就是很多时候,我们的View的状态时GONE的。
在此状态下使用上面两种方式都是不能获取对应的宽高的,而INVISIBLE状态时可以的。
INVISIBLE状态,系统会给View保留位置,也就是说View的宽高是已经算好了的,只是不进行渲染。
而GONE状态,系统不仅仅不会计算宽高,当然也不会渲染了。
问题如何获取View为GONE状态下的宽高呢?
有个小技巧就是,在xml中先将View设置设置为INVISIBLE,然后在onCreate中,在post中获取宽高,然后将View设置为GONE就可以了。
<TextView android:id="@+id/txt" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:background="#ff00ff" android:gravity="center" android:text="读书" android:textColor="#ffffff" android:textSize="32sp" android:visibility="invisible" />
txt = (TextView) findViewById(R.id.txt); txt.post(new Runnable() { @Override public void run() { width = txt.getWidth(); height = txt.getHeight(); txt.setVisibility(View.GONE); } });
0 0
- 当View为GONE状态时获取View的宽高
- 获取View的宽高
- 获取view宽高
- 获取view宽高
- Activity中获取view的高和宽为0时的解决方法
- android获取view宽高的几种方法,解决获取高宽为0问题
- 获取view的坐标 宽高 以及 view 转drawable
- Android获取View的宽高与View.measure详解
- Android获取View的宽高与View.measure详解
- View的显示状态GONE,VISIBLE和INVISIBLE区别
- android View 的显示状态GONE,VISIBLE和INVISIBLE区别
- View 的宽高的获取
- view的宽高获取不到
- 获取view的高和宽
- Android获取View的高宽
- Android 如何获取view的宽高
- 浅谈自定义View的宽高获取
- 获取View的宽高信息
- linux-debug-with log file
- Rust的数据类型和功能函数的返回值
- deepin下bochs的配置
- VS,C#--拼图小游戏
- C语言中的goto
- 当View为GONE状态时获取View的宽高
- 学习知识总结
- 类方法和实例方法的区别
- GLSL学习笔记---之内建变量2
- C 读取HTK生成的MFCC文件
- 手把手带你做一个超炫酷loading成功动画view Android自定义view
- Yii2.0-Widget小部件制作
- 【ZYNQ-7000开发之十六】音频信号处理
- 去掉手机页面a标签点击跳转时出现的样式改变