- popup点击外部或返回键取消
//popupwindow点击外部和返回键消失 mPopup.setFocusable(true);//如果没有这句返回键后窗体泄露 ColorDrawable dw = new ColorDrawable(0x00000000); mPopup.setBackgroundDrawable(dw); mPopup.setOutsideTouchable(true);//外部有焦点 - showAsDropDown(v, offsetX, offsetY)设置popup的位置 offsetX失效;原因:popup默认是左下角对其,如果控件是靠右边的,offsetX的设置是关键点。给出代码:
/** * 显示popup * @param view 在这个view下显示 * @param activity 在这个activity上显示pop */ @SuppressLint("NewApi") public static void showPopup(View view, Activity activity) { LayoutInflater inflater = LayoutInflater.from(activity); View popupView = inflater.inflate(R.layout.pop_clear_waitapply, null); PopupWindow mPopup = new PopupWindow(popupView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); // mPopup.setBackgroundDrawable(new BitmapDrawable()); mPopup.setFocusable(true); ColorDrawable dw = new ColorDrawable(0x00000000); mPopup.setBackgroundDrawable(dw); mPopup.setOutsideTouchable(true); popupView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); int xOffset = -(popupView.getMeasuredWidth() - view.getWidth()); mPopup.showAsDropDown(view, xOffset, -14);//popup默认左下角对齐 // mPopup.showAtLocation(view, Gravity.NO_GRAVITY, -40, 10); }
PopupWindow常见问题
最新推荐文章于 2024-05-18 10:01:45 发布
本文介绍如何使用PopupWindow组件实现点击外部区域或返回键关闭弹窗的功能,并详细解释了相关属性设置,如设置背景、获取焦点及位置偏移等。
795

被折叠的 条评论
为什么被折叠?



