Android中Popup寬度高度的設置

在項目開發時,常常須要使用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);
    }
});
相關文章
相關標籤/搜索