模态与非模态对话框
非模态(Modeless)对话框,又叫做无模式对话框
当用户打开非模态对话框时,依然可以操作其他窗口。例如,Windows提供的记事本程序中的【查找】对话框。【查找】对话框不会垄断用户的输入,打开【查找】对话框后,仍可与其他用户界面对象进行交互。用户可以一边查找,一边修改文章,这样就大大方便了使用。
非模态对话框允许用户在处理非模态对话框的同时处理目标对话框。其不会垄断用户的输入。
模态对话框(Modal Dialogue Box,又叫做模式对话框)
是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框关闭。
一般来说,Windows应用程序中,对话框分为模态对话框和非模态对话框两种。二者的区别在于当对话框打开时,是否允许用户进行其他对象的操作。
模态对话框垄断了用户的输入。当一个模态对话框打开时,用户只能与该对话框进行交互,而其他用户界面对象收不到输入信息。模态对话框下,用户需要操作目标对话框就必须先操作模态对话框。用户对模态对话框的处理如图所示。
android popupwindow内部和外部只有一方可获得焦点,点击无焦点的一方是没有任何响应的。PopupWindow可实现非模态模式,仅需设置setFocusable(false)即可。