
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)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)