Ответ 1
Что я должен был сделать, чтобы заставить его работать:
popup.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(context, android.R.color.transparent)));
popup.setOutsideTouchable(true);
У меня есть 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);
Что я должен был сделать, чтобы заставить его работать:
popup.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(context, android.R.color.transparent)));
popup.setOutsideTouchable(true);
Hmm setBackgroundDrawable не рассеивает всплывающее окно. Я думаю, что поведение всплывающего окна по умолчанию - это отклонение при прикосновении к внешней стороне, но вы можете добавить слушателя onDismiss таким образом
popup.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
popup.dismiss();
// end may TODO anything else
}
});
Вы можете попробовать.
popup.setBackgroundDrawable(new BitmapDrawable(getResources(),
""));