将view添加到WindowManager时如何获得View所需大小的问题?
如题。getWidth/Height是不行的,以为此时view还没有绘制。在网上看到有如下方式:
int widthSpec = MeasureSpec.makeMeasureSpec(mDecorView.getWidth(), MeasureSpec.AT_MOST);
int heightSpec = MeasureSpec.UNSPECIFIED;
mDecorView.measure(widthSpec, heightSpec);
Log.v("MyTag", "screen height: " + mWindowManager.getDefaultDisplay().getHeight());
Log.v("MyTag", "height: " + mDecorView.getMeasuredHeight());
但是发现得到的height比整个屏幕大的多,明显不对。 --------------------编程问答-------------------- MeasureSpec.AT_MOST
MeasureSpec.UNSPECIFIED改成 MeasureSpec.EXACTLY试试 --------------------编程问答-------------------- 试试
int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
mMenuLayout.measure(w, h);
int width =mMenuLayout.getMeasuredWidth();
补充:移动开发 , Android