android – getmeasuredheight()和getmeasuredwidth()在View.measure()之后返回0)

android – getmeasuredheight()和getmeasuredwidth()在View.measure()之后返回0),第1张

概述在使用view.measure()测量具有恒定维度的视图后,getMeasuredHeight()和getMeasureWidth()返回0. layout_view.xml,用于创建视图的布局 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="100 在使用vIEw.measure()测量具有恒定维度的视图后,getMeasuredHeight()和getMeasureWIDth()返回0.

layout_vIEw.xml,用于创建视图的布局

<FrameLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"     androID:layout_wIDth="100dp"    androID:layout_height="100dp"></FrameLayout>

测量尺寸的功能

public voID measureVIEw(Context context){    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);    VIEw vIEw = inflater.inflate(R.layout.layout_vIEw,null,false);    vIEw.measure( VIEw.MeasureSpec.UnspecIFIED,VIEw.MeasureSpec.UnspecIFIED);    Log.d(TAG,"Error wIDth : " + vIEw.getMeasureDWIDth());    Log.d(TAG,"Error heeght : " + vIEw.getMeasuredHeight());}
解决方法 当您调用onCreate()或onCreateVIEw()中的vIEw.getMeasureDWIDth()时,该视图尚未绘制.所以,您需要添加一个Listen,并在绘制视图时获取回调.就像我的代码一样:
VIEwTreeObserver vto = vIEw.getVIEwTreeObserver();            vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {                @OverrIDe                public voID onGlobalLayout() {                    int vIEwWIDth = vIEw.getMeasureDWIDth();                    // handle vIEwWIDth here...                    if (Build.VERSION.SDK_INT<16) {                        v.getVIEwTreeObserver().removeGlobalOnLayoutListener(this);                    } else {                         v.getVIEwTreeObserver().removeOnGlobalLayoutListener(this);                    }            });

注意:删除侦听器以获得更好的性能;

不要调用vto来删除,调用如下:

v.getVIEwTreeObserver()
总结

以上是内存溢出为你收集整理的android – getmeasuredheight()和getmeasuredwidth()在View.measure()之后返回0)全部内容,希望文章能够帮你解决android – getmeasuredheight()和getmeasuredwidth()在View.measure()之后返回0)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1130558.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存