Android-Activity-Dialog theme touch outsize

最近遇到一个蛋疼的问题:

一个Activity,主题设置成 Dialog 然后点击外面要求这个Activity 不能关闭。

这下好了,直接在 style 的 theme 里面加一个属性就好了。

加上去发现要11以上的版本才支持,唉,蛋疼,现在谁还兼容15以下的,这话说的好,是没错,但我这是做sdk,所以倍疼。

然后继续寻找,找到了一个解决方案。是这样的:

悲剧再次发生,依旧是11以上

接下来继续找,哎,找到了,找到了。。。

是这样的,捕捉外部的触摸,然后做相应的处理:

重写onTouchEvent

最后发现,也有问题,什么问题呢?就是事件会不断的往下面传,也就是你会点击到上一个 Activity 的控件,从而触发它的点击事件等等,反正一万个不爽。

于是,return true 改成 false 发现也不行(这说明我价值观还是正确的。)

不行就继续找:

最终的解决方案找到是这样的:

和上一种方式有点类似,就是捕获有效区域,无效的return ture; 重写dispatchTouchEvent

对,没错,最终就是这样的。

时间: 2024-10-01 02:55:19

Android-Activity-Dialog theme touch outsize的相关文章

【起航计划 005】2015 起航计划 Android APIDemo的魔鬼步伐 04 App->Activity->Custom Dialog Dialog形式的Activity,Theme的使用,Shape的使用

App->Activity->Custom Dialog 例子使用Activity 来实现自定义对话框 类CustomDialogActivity本身无任何特别之处.关键的一点是其在AndroidManifest.xml中的定义: <activity android:name=".app.CustomDialogActivity" android:label="@string/activity_custom_dialog" android:them

Android 自定义Dialog类,并在Activity中实现按钮监听。

实际开发中,经常会用到Dialog,比如退出时候会弹出是否退出,或者还有一些编辑框也会用Dialog实现,效果图如下: 开发中遇到的问题无非在于如果在Activity中监听这个Dialog中实现的按钮,Dialog类如下,在MyDialog这个类中实现了一个LeaveMyDialogListener接口,用来实现onclick的点击事件: package com.Ieasy.Tool; import com.Ieasy.ieasyware.R; import android.app.Dialog

android的Dialog全屏、activity大小的设置详解

引言:一搬的Dialog系统默认是不允许全屏的,下面我们介绍几种Dialog全屏的方式 第一. final Dialog dialog = new Dialog(WenDetailActivity.this, R.style.popupDialog); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.wen_cover_pager); dialog.setCanceledOn

Android之Dialog分析

Android之Dialog分析 以Dialog为引导,Android的弹出式消息一共是三种(据我所知):Dialog,tocast,notification 其三种弹出式消息各有所长.今天重点是分析其中的Dialog.Android的Dialog是android界面编程的重点.当然android被称之为"页程序"就更体现页面编程,UI线程了解的重要性了. 本文的目录结构: 1.Android中的几种Dialog 2.Dialog的创建方式 3.Android的警告对话框AlertDi

Android中Dialog

在Android中,Dialog是一个非常重要的UI, 它可以方便的给用户提示,用最简洁的方式向用户展示信息, 以下的图片是Dialog的一个整体架构,通过它,可以总体对Dialog有一个很清晰的认识. 从这张图中可以看到,Dialog为父类, 其下有最重要的, 我们最常用的AlertDilog, 而AlertDialog的子类,则是由DatPicker, ProgressDialog,TimePick来组成. 这几个子类都是我们在程序开发中最常用的,因此要重点理解, 我们可以试着想像一下,如下

android自带theme

在网上搜了一下,android自带theme如下: ?android:theme="@android:style/Theme.Dialog"   将一个Activity显示为对话框模式 ?android:theme="@android:style/Theme.NoTitleBar"  不显示应用程序标题栏 ?android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  不显示应用程序标题栏

Android Activity 生命周期的透彻理解

说来惭愧,虽然已经做了一年多的android开发,但是最近被人问起activity的生命周期的时候,却感觉自己并不能很自信很确定的回答对方的问题,对activity的生命周期的理解还不透彻啊.     既然发现了问题,那咱就得解决问题,不就个生命周期,能有多复杂. 首先看看android developers 网上的activity的生命周期图:      activity启动的时候:onCreate ---> onStart ---> onResume 这个过程不用多说,大家都知道.这里主要

android学习之-Theme和Style

android学习之-Theme和Style 分类: android 2013-10-11 15:01 960人阅读 评论(0) 收藏 举报 android style和theme的使用. style:样式,用来描述单独的view控件,改变其样式. theme:主题,用来控制整个应用的主题,或者某个activity的主题. style的使用:改变某控件的样式. 在style.xml中描述样式信息 [java] view plaincopy <?xml version="1.0" 

Android开发之Theme、Style探索及源码浅析

1 背景 前段时间群里有伙伴问到了关于Android开发中Theme与Style的问题,当然,这类东西在网上随便一搜一大把模板,所以关于怎么用的问题我想这里也就不做太多的说明了,我们这里把重点放在理解整个Android中Theme.Style的关系及结构,这样我们就能游刃有余的面对实际开发中遇到的很多问题了,也就免得在自定义时遇到各种坑,譬如不清楚该继承哪个parent.不清楚为何背景会有一个黑边等. 本文主要分两部分来进行简单粗略的浅析,首先会围绕Theme与Style的定义及在App开发中的