Android 在弹出窗口外触摸时关闭PopupWindow,而不使用不推荐的构造函数
我有一个PopupWindow,我想在用户接触到外部时将其关闭,因此我查看并发现我必须使用Android 在弹出窗口外触摸时关闭PopupWindow,而不使用不推荐的构造函数,android,popupwindow,Android,Popupwindow,我有一个PopupWindow,我想在用户接触到外部时将其关闭,因此我查看并发现我必须使用popup.setBackgroundDrawable(new BitmapDrawable())。问题是构造函数new BitmpaDrawable()已被弃用。我想找到一个不用它的解决方案 有人知道怎么解决这个问题吗 谢谢 final PopupWindow popup = new PopupWindow(sortByView,
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);
嗯,可设置背景图,不要错过弹出窗口。我认为弹出窗口的默认行为是在触摸外部时关闭,但您可以像这样添加onDismiss侦听器
popup.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
popup.dismiss();
// end may TODO anything else
}
});
你可以试试
popup.setBackgroundDrawable(new BitmapDrawable(getResources(),
""));
我必须做什么才能让它工作:
popup.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(context, android.R.color.transparent)));
popup.setOutsideTouchable(true);
如果我不使用popup.setBackgroundDrawable(new BitmapDrawable())这行代码,我认为弹出窗口的默认行为不是关闭代码>触摸时弹出窗口不会关闭。这只适用于该行,但是new BitmapDrawable()
已被弃用,因此我得到了一个我想要避免的警告。如何显示弹出窗口?如果在调用“popup.disease()”时使用popup.showAsDropDown()显示它,则会关闭弹出窗口。检查您的代码是否有一行“popup.setOutsideTouchable(true)”。并尝试:popup.setModal(true)是的,我正在使用popup.showAsDropDown(v)代码>。PopupWindow没有一个方法popup.setModal(true)
Ok很抱歉之前的问题,但是删除了行popup.setOutsideTouchable(true);,因为它控制弹出窗口是否会被告知其窗口外的触摸事件,之后您将不会遇到此问题。popup.setBackgroundDrawable(new ColorDrawable(android.R.color.transparent));我尝试过同样的东西,它在emulator中工作,但同样的代码在设备上不工作。问题是什么?