在弹出窗口外部触摸时关闭弹出窗口,而不使用已弃用的构造函数



我有一个弹出窗口,我希望当用户触摸外面时它关闭,所以我调查并发现我必须使用popup.setBackgroundDrawable(new BitmapDrawable());。问题是构造函数new BitmpaDrawable()已被弃用。我想在不使用的情况下找到解决方案。

有人知道如何解决这个问题吗?

谢谢!

                final PopupWindow popup = new PopupWindow(sortByView,
                                          ViewGroup.LayoutParams.WRAP_CONTENT,
                                          ViewGroup.LayoutParams.WRAP_CONTENT,            
                                          true);
                popup.setBackgroundDrawable(new BitmapDrawable());
                popup.setOutsideTouchable(true);
                popup.showAsDropDown(v);

我必须做什么才能让它工作:

popup.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(context, android.R.color.transparent)));
popup.setOutsideTouchable(true);

嗯 setBackgroundDrawable 不要关闭弹出窗口。我认为弹出窗口的默认行为是在触摸外部时关闭,但您可以添加 on 像那样关闭侦听器

popup.setOnDismissListener(new PopupWindow.OnDismissListener() {
    @Override
    public void onDismiss() {
        popup.dismiss();
        // end may TODO anything else                   
    }
});
你可以

试试。

popup.setBackgroundDrawable(new BitmapDrawable(getResources(),
            ""));

最新更新