Popwindow 设置宽高无效的原因和解决方案

来源:互联网 发布:邮件地址搜索软件 编辑:程序博客网 时间:2024/06/05 03:00

Popwindow 没有继承Viewgroup,因此最外层布局属性的宽高无效,如果布局设置wrap_content则以实际资源大小为准,例如:给布局定义背景图片,如果图片是.9格式要特别注意,设置了宽高后会默认加上没有被拉升的部分宽高。
Popwindow 显示方法有两种,即显示在某个view下和显示在窗体中的某个xy位置,如果设置了比重,Gravity.END|Gravity.TOP 此时从上到下,从右到左的偏移量为正。

public class Pop extends PopupWindow {    private View conentView;    public Pop(final Activity context) {        LayoutInflater inflater = (LayoutInflater) context                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);        conentView = inflater.inflate(R.layout.pop_task, null);        int h = context.getWindowManager().getDefaultDisplay().getHeight();        int w = context.getWindowManager().getDefaultDisplay().getWidth();        // 设置SelectPicPopupWindow的View        this.setContentView(conentView);        // 设置SelectPicPopupWindow弹出窗体的宽        this.setWidth((int)context.getResources().getDimension(R.dimen.px_to_dp_232));        // 设置SelectPicPopupWindow弹出窗体的高        this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);        // 设置SelectPicPopupWindow弹出窗体可点击        this.setFocusable(true);        this.setOutsideTouchable(true);        // 刷新状态        this.update();        // 实例化一个ColorDrawable颜色为半透明        ColorDrawable dw = new ColorDrawable(0000000000);        // 点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener ,设置其他控件变化等操作        this.setBackgroundDrawable(dw);    }
0 0
原创粉丝点击