`
eagle0824
  • 浏览: 227699 次
  • 性别: Icon_minigender_1
  • 来自: 镇江
社区版块
存档分类
最新评论

android 模态与非模态对话框实现

阅读更多
1.模态对话框是指对话框不消失,不能对其他页面进行操作,也就是其他页面不能获得焦点
android中的dialog,以及activiy形式的dialog均是模态对话框
2非模态对话框,对话框显示的时候,其他界面,仍然可以获得焦点,仍然可以进行点击等操作,同时对话框也可以进行点击等操作。
在android系统中如何实现非模态对话框呢?
通过PopupWindow可以实现
很好的例子就是pinyin输入法,通过查看源码就可以看到,其界面是几个popupwindow组成的,每个popupwindow都可以进行操作

附件是一个popupwindow实现的非模态对话框的小例子,来自于网络,稍微修改了一下,写在一个类里。


  • 大小: 8.4 KB
分享到:
评论
5 楼 hxy1000 2014-05-14  
android里没有模态,不过有的对话框效果类似于模态
4 楼 一天一世纪 2013-08-06  
我也认为说错了。因为对于popupwindow,内部和外部只有一方可获得焦点,点击无焦点的一方是没有任何响应的。
3 楼 eagle0824 2012-06-10  
伊人水立方 写道
楼主,你说反了吧?Android本身就是非模态,非阻塞试的对话框。

不是吧,android 中dialog弹出来,就不能与其它界面(dialog后的activity)进行交互了,这不是模态的么?
2 楼 伊人水立方 2012-05-15  
Dialog 里面有一个 setCancelable(true); 就是非模态的,系统默认是 true.设置成false就是模态的。这样的话只能用代码或加一个按钮监听去取消。使用键盘和点击都没用。
1 楼 伊人水立方 2012-05-15  
楼主,你说反了吧?Android本身就是非模态,非阻塞试的对话框。

相关推荐

    Android实现模态dialog

    Android中如果要实现模态对话框,普通的dialog是做不到的。有两种方式解决: 1.通过popupwindow实现。 2.通过activity实现。

    ModalBottomSheetDialogFragment:基于材料准则的模态底部工作表对话框

    ModalBottomSheetDialogFragment:基于材料准则的模态底部工作表对话框

    解决Android中自定义DialogFragment解决宽度和高度问题

    是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。 在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐...

    Android仿JD选择地区

    整个对话框是建立在一个DialogFragment上面的,DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。 组成结构:DialogFragment+PagerSlidingTabStrip +...

    一个taro适配Android、iOS、微信小程序、H5最佳实践项目的脚手架

    taro适配Android、iOS、微信小程序、H5最佳实践,主要涉及到了基础网络请求的封装、适配了多端的SafeArea安全区域、style工具样式引用替换scss的繁琐写法大幅度简化代码,同时解决了scss样式无法通过className进行属性...

    Android开发笔记之:Dialog的使用详解

    2. 尽量少用模态对话框(Model dialog),如果Dialog.setCancellable(false),就变成了一个模态对话框,除了程序内部把其Dismiss,否则按什么键都无法将其取消。这是极差的用户体验,对话框本身就是一种干扰,再无法...

    Android中DialogFragment自定义背景与宽高的方法

    是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。 在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐...

    Android使alertDialog.builder不会点击外面和按返回键消失的方法

    之前有人说模态对话框,我看了一会,觉得不是我想要的效果。popWindow的话,必须提供父view. 重新看下api,发现设置setCancelable属性就行了。 如: public void showNoProject(){ Builder builder = new ...

    finch:for Android应用程序的调试菜单库,支持网络活动日志记录和许多其他有用的功能

    Finch 为 Android 应用程序开发提供了一个可定制的调试菜单。 它不会影响生产代码。 开发人员可以通过简单的步骤轻松添加自己的自定义调试功能。 Gradle依赖 将它添加到存储库末尾的根 build.gradle 中: ...

    vcdroid:适用于Android的View Controller

    具有无缝动画的模态对话框。 具有子控制器堆栈的NavigationController。 材质选项卡的TabBarController。 ImagePickerController,用于从相机或系统库中导入照片。我为什么要打扰? 面对现实吧-活动和片段都是垃圾...

    github上能找到的芋头适配Android, iOS,微信小程序,H5最佳实践项目脚手架

    github上能找到的taro适配Android、iOS、微信小程序、H5最佳实践,主要涉及到了基础网络请求的封装、适配了多端的SafeArea安全区域、style工具样式引用替换scss的繁琐写法大幅度简化代码,同时解决了scss样式无法通过...

    job_application_challenge:工作申请挑战

    为了获得职位的考虑,您必须遵循以下步骤。 注意:此任务最长不应超过 30-60 分钟。 Fork 这个仓库(如果你不知道怎么做,谷歌是你的朋友) ...如果它不是模态/阻塞对话框,那就更好了 在列表适配器上实现 ViewHol

    chrome.exe

    Chrome 31.0.1650.63包含15个安全修复,例如同步会话的302定向、v8缓冲区溢出、模态对话框中的地址栏欺诈…… Chrome 31支持Web支付,在用户的授权下,Web开发人员可以通过程序调用浏览器的自动填充数据。这样,在...

Global site tag (gtag.js) - Google Analytics