在項目開發時,常常須要使用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); } });