15

我有一个 PopupWindow,我希望它在用户触摸外部时关闭,所以我查看并发现我必须使用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);
4

3 回答 3

19

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

popup.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(context, android.R.color.transparent)));
popup.setOutsideTouchable(true);
于 2015-02-25T19:42:44.200 回答
7

你可以试试。

popup.setBackgroundDrawable(new BitmapDrawable(getResources(),
            ""));
于 2014-02-10T15:05:08.200 回答
7

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

popup.setOnDismissListener(new PopupWindow.OnDismissListener() {

    @Override
    public void onDismiss() {
        popup.dismiss();
        // end may TODO anything else                   
    }
});
于 2013-10-04T10:02:48.033 回答