1.模态对话框是指对话框不消失,不能对其他页面进行操作,也就是其他页面不能获得焦点
android中的dialog,以及activiy形式的dialog均是模态对话框
2非模态对话框,对话框显示的时候,其他界面,仍然可以获得焦点,仍然可以进行点击等操作,同时对话框也可以进行点击等操作。
在android系统中如何实现非模态对话框呢?
通过PopupWindow可以实现
很好的例子就是pinyin输入法,通过查看源码就可以看到,其界面是几个popupwindow组成的,每个popupwindow都可以进行操作
附件是一个popupwindow实现的非模态对话框的小例子,来自于网络,稍微修改了一下,写在一个类里。
1 楼 伊人水立方 2012-05-15
楼主,你说反了吧?Android本身就是非模态,非阻塞试的对话框。
2 楼 伊人水立方 2012-05-15
Dialog 里面有一个 setCancelable(true); 就是非模态的,系统默认是 true.设置成false就是模态的。这样的话只能用代码或加一个按钮监听去取消。使用键盘和点击都没用。
3 楼 eagle0824 2012-06-10
伊人水立方 写道
楼主,你说反了吧?Android本身就是非模态,非阻塞试的对话框。
不是吧,android 中dialog弹出来,就不能与其它界面(dialog后的activity)进行交互了,这不是模态的么?