我有一个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);
答案 0 :(得分:19)
我需要做些什么才能让它发挥作用:
popup.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(context, android.R.color.transparent)));
popup.setOutsideTouchable(true);
答案 1 :(得分:7)
Hmm setBackgroundDrawable不要忽略弹出窗口。我认为弹出窗口的默认行为是在外面触摸时解除,但你可以像这样添加onDismisslistener
popup.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
popup.dismiss();
// end may TODO anything else
}
});
答案 2 :(得分:7)
你可以试试。
popup.setBackgroundDrawable(new BitmapDrawable(getResources(),
""));