将view添加到WindowManager时如何获得View所需大小的问题?

harry330 2011-08-27 01:32:42
如题。

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比整个屏幕大的多,明显不对。
...全文
333 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pananc 2011-12-12
  • 打赏
  • 举报
回复
试试
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();
wenzheng38 2011-08-27
  • 打赏
  • 举报
回复
MeasureSpec.AT_MOST
MeasureSpec.UNSPECIFIED改成 MeasureSpec.EXACTLY试试

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧