我为平板电脑开发了一个Android应用程序。当用户单击设置按钮时,我想在屏幕右上角向用户显示一个对话框,您可以在其中配置设置。
鉴于对话框很复杂,我觉得PopupWindow
比PopupMenu
更合适。 PopupMenu
具有很好的行为,即当用户在菜单外单击时会自动关闭。如何使PopupWindow
表现出相同的行为?
答案 0 :(得分:2)
您只需要设置setBackgroundDrawable
的{{1}}和setOutsideTouchable
属性,如果您触摸窗口外部,它将关闭该窗口。
PopupWindow
答案 1 :(得分:0)
当您触摸外部并单击“后退”按钮时,我看到PopupMenu
关闭。因此,要使PopupWindow
像PopupMenu
一样消散,应使用
popupWindow.isFocusable = true
// or you can send focusable when initialize PopupWindow because they have constructor like PopupWindow(View contentView, int width, int height, boolean focusable)
您可以在此处查看my full answer,以了解为什么我们应该使用isFocusable
。
希望对您有帮助
答案 2 :(得分:0)
//要在触摸外部时关闭弹出窗口。
mPopupWindow.setOutsideTouchable(true);
//将焦点设置为弹出窗口,以便在触摸时可以关闭该窗口
mPopupWindow.setFocusable(true);
//如果要删除默认背景。
mPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
setOutsideTouchable(boolean touchable)控制是否弹出 将会在其窗口之外的触摸事件中得到通知。
setFocusable(布尔型可聚焦) 更改弹出窗口的焦点。
setBackgroundDrawable(可绘制背景)指定背景 此弹出窗口可绘制的。