丈夫欲遂平生志,一载寒窗一举汤。这篇文章主要讲述Android-Activity-Dialog theme touch outsize相关的知识,希望能为你提供帮助。
最近遇到一个蛋疼的问题:
一个Activity,主题设置成 Dialog 然后点击外面要求这个Activity 不能关闭。
这下好了,直接在 style 的 theme 里面加一个属性就好了。
文章图片
加上去发现要11以上的版本才支持,唉,蛋疼,现在谁还兼容15以下的,这话说的好,是没错,但我这是做sdk,所以倍疼。
然后继续寻找,找到了一个解决方案。是这样的:
文章图片
悲剧再次发生,依旧是11以上
接下来继续找,哎,找到了,找到了。。。
是这样的,捕捉外部的触摸,然后做相应的处理:
文章图片
重写onTouchEvent
文章图片
最后发现,也有问题,什么问题呢?就是事件会不断的往下面传,也就是你会点击到上一个 Activity 的控件,从而触发它的点击事件等等,反正一万个不爽。
于是,return true 改成 false 发现也不行(这说明我价值观还是正确的。)
【Android-Activity-Dialog theme touch outsize】不行就继续找:
最终的解决方案找到是这样的:
和上一种方式有点类似,就是捕获有效区域,无效的return ture; 重写dispatchTouchEvent
文章图片
对,没错,最终就是这样的。
推荐阅读
- 一天就学会Android开发四大组件
- Android6.0 PKMS扫描目录和调用接口安装应用的区别
- Android studio 打开别人的工程
- Android Change TCP Congestion Control
- Android EventBus事件总线剖析
- android 项目学习随笔三(Fragment )
- Android Studio Gradle:Resolvedependencies':app:_debugCompile' 问题解决纪录
- Android应用开发SharedPreferences存储数据的使用方法
- 学习Android之-----------------------AndroidManifest.xml