美文网首页
自定义Dialog之旅程(一)初试

自定义Dialog之旅程(一)初试

作者: 键盘上的麒麟臂 | 来源:发表于2017-07-13 09:14 被阅读78次

看到美图上一些dialog华丽丽的效果之后,我也想装装逼,但是自定义dialog的文章不是很多,所以我也只能以一种摸索的形式来写这篇文章。
首先看了网上写的几篇,在继承了dialog之后就重写了onCreate方法,于是这里我们需要先抛出一个问题
dialog的生命周期是怎样的?知道这个东西的生命周期的话,对这个组件的使用就得心应手了,先把这个问题留到后面
我们写照着别人的来重写onCreate方法

Paste_Image.png Paste_Image.png

第二句是我封装的类,不用管它,这里就一句setContentView()方法。
结果效果是这样的。

Paste_Image.png

我的父布局是设置满屏的,而且现在点旁边也不会消失。

从这步操作中我们可以看出两个重点:
1、dialog本身设置布局与窗口之间存在一定距离
2、默认情况下布局会显示白色

二、既然布局是白色,太丑了,我们设置成布局背景透明色看看是什么效果

Paste_Image.png

图不贴了,就是上面那张,发现设置父布局的背景并没有什么卵用

那就换个方法,按照网上的做法贴上这句

       getWindow().setBackgroundDrawableResource(android.R.color.transparent);   
Paste_Image.png

发现确实有效果,这一步说明了两点:
1、把空白变透明没必要像一些网上说的设置主题
2、设置父布局背景透明没用,要设置窗口透明才行

三、结束
其实说到这里就可以结束了,因为美团的效果已经出来了
,图中两个控件都是imageview,你只要换个好看的图,然后给按钮设置点击事件,好,大功告成。

四、开个玩笑,结束这么快我还写毛啊
虽然上面能实现我们想要的结果,但是点击附近时,弹框并不会消失,如果我们想要做点击旁边弹框消失的效果呢。

先按照别人的做法

Paste_Image.png

dismiss()就是消失,用过dialog的知道,但是按照这样的做法会出现一个效果,不管点击哪里都会消失。
其实这里应该是可以设置的,onTouchEvent是事件分发。

但是这样做就太麻烦了,换一种做法
textDialog.setCanceledOnTouchOutside(true);
发现这样子并没有用

好吧,目前没找到办法,要下班了,这个问题留到后面说。其实不实现点击周围消失的效果也行,因为这个地方本来就有一个叉的按钮让你点击,所以没必要再设置点击周围消失。

其实发现设置 setFinishOnTouchOutside(true);是可以消失的,只是看第一步,点外围会消失,但是点之前是空白的那个地方就不会消失。

相关文章

  • 自定义Dialog之旅程(一)初试

    看到美图上一些dialog华丽丽的效果之后,我也想装装逼,但是自定义dialog的文章不是很多,所以我也只能以一种...

  • Dialog

    安卓dialog的使用+如何自定义dialog自定义Dialog自定义Dialog 自定义

  • 【Android】自定义全屏dialog

    一、在themes.xml中添加自定义dialog的样式 二、创建dialog基类 三、创建自定义dialog的布...

  • 自定义Dialog

    自定义Dialog的主题 自定义Dialog的布局文件 继承Dialog 并在onCreate方法中将布局设置给D...

  • 一个漂亮的自定义Dialog

    这是一个自定义的dialog项目 自定义的dialog,具有如下特点 圆角的dialog View 圆形图片的ti...

  • 实现图片Dialog中带ViewPager

    效果图 实现思路 自定义Dialog,为Dialog添加自定义布局,自定义PagerAdapter以及PageTr...

  • Flutter Dialog 动画

    本文对 Dialog 做一次系统性学习记录,包括系统 Dialog,自定义 Dialog,Dialog 动画。 A...

  • Android圆角对话框Dialog

    需求:模仿iOS样式Dialog对话框。 自定义Dialog 核心代码: Dialog样式: Dialog布局文件...

  • Dialog

    dialog效果的实现由两种,一种是activity采用dialog风格,另一种是自定义的dialog,其中自定义...

  • Android自定义Dialog及其点击事件

    在项目开发中,经常要用到dialog。但是系统的dialog太丑,所有我们要自定义dialog。下面的先介绍自定义...

网友评论

      本文标题:自定义Dialog之旅程(一)初试

      本文链接:https://www.haomeiwen.com/subject/lvbhnttx.html