在项目开发时,常常须要使用popupWindow在EditText下面,作相似于百度搜索的提示列表的效果,可是popupwindow的宽度的设置,常常须要与EditText保持一致,若是在onCreate()中直接设置控件的高度、宽度,由于控件尚未彻底加载,并不能获取到EditText的宽高,而若是使用mesureWidth或者mesureHeight的话,若是EditText原本是在其余父布局中,父布局的宽高也是wrap_content,不肯定的,此时即使“预绘制”结束,也可能由于父布局没有彻底绘制结束,致使获取到的宽高仍然不是最终的高度,所以此处建议使用这种方式获取EditText的宽高ide
//等待界面彻底加载结束后,设置suggestPopup的宽度 edt.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { edt.postDelayed(new Runnable() { @Override public void run() { suggestPopup.setWidth(edt.getMeasuredWidth()); } }, 300); } });