Android获取控件的大小
来源:互联网 发布:win10最详细优化设置 编辑:程序博客网 时间:2024/06/13 22:38
有时候我们需要获得控件的大小,但是在Activity的onCreate()生命周期方法中调用getWidth()和getHeight()方法并不能获得控件的宽和高,因为此时我们的界面并未被绘制完成。不过我们却可以在onWindowFocusChanged(boolean hasFocus)这个方法中获得控件的大小。
当前窗口的Activity在获得或者失去焦点的时候就会调用这个方法,它是这个Activity是否对用户可见的最好标志。
那么对于Fragment又该怎么办呢?Fragment并未提供类似onWindowFocusChanged的方法。这时我们就需要用到ViewTreeObserver了。
顾名思义,这是个对视图变化进行监听的观察者。提供了以下接口,大家可以自己试着测试一下。
@Overridepublic void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); int height = titleLeftBtn.getHeight(); int width = titleLeftBtn.getWidth();}
当前窗口的Activity在获得或者失去焦点的时候就会调用这个方法,它是这个Activity是否对用户可见的最好标志。
那么对于Fragment又该怎么办呢?Fragment并未提供类似onWindowFocusChanged的方法。这时我们就需要用到ViewTreeObserver了。
ViewTreeObserver observer = layoutIndex.getViewTreeObserver();observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { public boolean onPreDraw() { if (!isMeasured) { int layoutHeight = layoutIndex.getMeasuredHeight(); isMeasured = true; } return true; }});
顾名思义,这是个对视图变化进行监听的观察者。提供了以下接口,大家可以自己试着测试一下。
interface ViewTreeObserver.OnPreDrawListenerinterface ViewTreeObserver.OnGlobalFocusChangeListenerinterface ViewTreeObserver.OnGlobalLayoutListenerinterface ViewTreeObserver.OnScrollChangedListenerinterface ViewTreeObserver.OnTouchModeChangeListener
0 0
- android 获取 控件的大小
- Android获取控件的大小
- 获取android控件的大小
- android获取控件大小
- Android获取控件大小的方法
- Android获取控件大小的方法
- Android 在OnCreate的适合获取控件的大小
- Android(Activity/Fragment)获取控件的大小
- Android(Activity/Fragment)获取控件的大小
- Android View中getViewTreeObserver().addOnGlobalLayoutListener()以及获取控件的大小
- Android(Activity/Fragment)获取控件的大小
- android 获取控件大小和设置调整控件的位置XY
- android 获取控件大小和设置调整控件的位置XY
- android 获取控件大小和设置调整控件的位置XY
- vc 获取和设置控件的大小
- 获取安卓控件的大小
- MFC中获取picture控件的大小
- iOS -- 获取控件内容的大小
- 关于 LYCHolyContentController 的使用记录
- online_judge_1187
- mysql主从复制相关的参数
- Eratosthenes 筛选素数
- 在[AOS应用基础平台]新增了【首选项】功能模块
- Android获取控件的大小
- 【Javase】ArrayList底层代码实现
- online_judge_1188
- Linux汇编初识
- Unity3D武器Coroutine介绍
- online_judge_1189
- ios推送机制
- Linux内核模块(驱动)编译详解
- MVC5 + EF6 入门完整教程一