Android 获取View宽高
16lz
2021-01-23
一般情况:
View's getWidth() and getHeight() returns 0
View初始状态为GONE的情况
private int mMeasuredHeight; private int mMeasuredWidth; private boolean firstVisible = true; @Override protected void onVisibilityChanged(@NonNull View changedView, int visibility) { super.onVisibilityChanged(changedView, visibility); if (visibility == View.VISIBLE) {//可见状态 if (firstVisible) { mSeekBar.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { mMeasuredWidth = mSeekBar.getMeasuredWidth(); mMeasuredHeight = mSeekBar.getMeasuredHeight(); Log.e("", "onGlobalLayout " + mMeasuredWidth + " " + mMeasuredHeight); mSeekBar.getViewTreeObserver().removeOnGlobalLayoutListener(this); } }); firstVisible = false; } } }
更多相关文章
- Android 检查wifi状态
- android沉浸式状态栏实现,android沉浸式状态栏工具类
- Android 透明状态栏实现方案
- android > 广播监听电话状态
- android 按纽状态配置文件
- 监听电话状态
- Android 状态栏透明
- 获取android顶部状态栏高度的两种方式
- Android命令行测试BT,WIFI,Sensor工作状态