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);
    }
});
相关文章
相关标签/搜索