android dismiss方法,Android编程之DialogFragment源码详解(一)注:对 dismissAllowingStateLoss()理解...
DialogFragment是Fragment家族成员之一,如果你把它简单的理解成Dialog,那就错了。它的确可以做作dialog显示,还可以显示出自己定义的Dialog或者AlertDialog,但它同时也是一个Fragment。
按照官方的话来理解就是,你既可以把它当成一个dialog显示出来,也可以让它作为一个Fragment嵌套在Activity中,这样更方便开发。
为什么这么说呢?试想一下,当产品需求最开始把它作为一个界面显示的时候,你可能已经把它作为Fragment已经写好了,但中途产品又把它设计成一个dialog,那你该怎么办?重新去一个dialog或者activity吗?以前的传参怎么办?过两天,产品又将它改回去,你还要再重写一遍吗?等等一系列的问题就来了。
所以,这个时候,你只需要把当前的Fragment继承类改为DialogFragment,再添加几行代码就可以了。其他的,基本都不用动。即使过两天再改回来,或者别的界面也需要它的时候,你就可以直接把它当做Fragment,继续使用,代码都不用改。
这一点,不得不赞一下Fragment这个的出现,大大方便了开发,再也不怕产品设计调整界面布局了!
这里多啰嗦一句,如果产品已经定义好了作为dialog,或者之前就是dialog的,就不要将它们改成DialogFragment的了,还是那句话:只做有意义的代码改动!
今天之所以翻出源码来,主要还是希望通过对代码的了解,更好使用DialogFragment。而且有些细节部分,不看源码的话,可能就真在方法传值时传错了。比如:style的设置!
在源码最开始部分,就定义了style的常量:
publicstaticfinalintSTYLE_NORMAL =0;
publicstaticfinalintSTYLE_NO_TITLE =1;
publicstaticfinalintSTYLE_NO_FRAME =2;
publicstaticfinalintSTYLE_NO_INPUT =3;
STYLE_NORMAL:会显示一个普通的dialog
STYLE_NO_TITLE:不带标题的dialog
STYLE_NO_FRAME:无框的dialog
STYLE_NO_INPUT:无法输入内容的dialog,即不接收输入的焦点,而且触摸无效。
说起来,android很多参数的设置,都有用到“|”的方法,表示支持两种或两种以上。最常见的,就是“Top|Left”,所以,在这里有很多人会想用
android dismiss方法,Android编程之DialogFragment源码详解(一)注:对 dismissAllowingStateLoss()理解...相关推荐
- Android编程之DialogFragment源码详解(二)
接上篇,继续: 然后就是setShowsDialog(boolean showsDialog)方法.官方文档是这样解释的:控制DialogFragment是否是一个dislog,如果设置为false, ...
- Android编程之DialogFragment源码详解(一)
DialogFragment是Fragment家族成员之一,如果你把它简单的理解成Dialog,那就错了.它的确可以做作dialog显示,还可以显示出自己定义的Dialog或者AlertDialog, ...
- Android编程之Intent源码详解
Intent源码详解,直接开始入题: Intent源码6700多行代码,但真正核心代码 就那么几百行,大部分都用来定义常量字符串了 先来看一下 public class Intent implemen ...
- Android编程之LocalBroadcastManager源码详解
LocalBroadcastManager 是V4包中的一个类,主要负责程序内部广播的注册与发送.也就是说,它只是适用代码中注册发送广播,对于在AndroidManifest中注册的广播接收,则不适用 ...
- Android编程之ArrayList源码详解及使用
ArrayList 本是 java中的代码,放到android这边显得不太合适,但由于它在android开发中又大量应用,所以就放到这里,供大家学习. 相信大家对ArrayList不陌生,但要说到细节 ...
- Android开发之GPS测试完整案例源码详解之实时检测GPS的状态
获取Android系统Location位置服务实例: /*** Get location manager system service** @return LocationManager*/publi ...
- Android 网络编程之OkHttp源码解析
前言:OkHttp框架是Android的网络请求框架,无数的项目都在使用着这个框架,重要性不言而喻; 本文会将OKHTTP的源码进行拆解,每个部分来单独学习,由简入深,循序渐进,篇幅较长,建议收藏,慢 ...
- 基于sqlite的android数据库编程,Android编程之SQLite数据库操作方法详解
Android编程之SQLite数据库操作方法详解 发布时间:2020-09-07 12:33:04 来源:脚本之家 阅读:85 作者:低调小一 本文实例讲述了Android SQLite数据库操作方 ...
- 源码详解Android 9.0(P) 系统启动流程之SystemServer
源码详解Android 9.0(P) 系统启动流程目录: 源码详解Android 9.0(P)系统启动流程之init进程(第一阶段) 源码详解Android 9.0(P)系统启动流程之init进程(第 ...
最新文章
- MaterialImageView
- 北斗导航 | Satellite Communications Toolbox——MATLAB2021a卫星通信工具箱(附代码)
- 详解log4j2(下) - Log4j2在WEB项目中配置
- [翻译]Django tutorial, part 1: Models
- 程序员求助:腾讯面试题,64匹马8个跑道,多少轮选出最快的四匹
- 用python写名字
- Unity NGUI 组件简介
- 计算机组装课上机课干什么,多媒体技术与《计算机组装与维护》课的精彩结合:组装一台多媒体计算机需要哪些部件...
- 无线呼叫服务器对码设置,无线鼠标对码模式怎么设置
- 【笔记】lamp架构框图
- 【HAVENT原创】CentOS 6.5 安装nodeJS
- 计算机管理打不开路径不存在,电脑打不开软件提示路径不正确如何解决
- android win7 共享网络打印机,详解win7共享打印机如何设置
- Git拉取远程最新代码,并与当前分支合并
- device 查看tensor_Tensor数据操作
- golang关于panic的解析
- 学前端要多久?学前端要多久?学前端多少钱
- 转:华为网络工程师离职总结:资质平庸的人该怎么办?震惊了无数人!
- 阿里云IoT2018年度十佳合作伙伴20强入围企业公布...
- AOP相关术语(连接点、切入点、通知、引介、目标对象、织入、代理、切面)
热门文章
- rabbitmq 手动提交_RabbitMQ系列(四)RabbitMQ事务和Confirm发送方消息确认——深入解读 - 王磊的博客 - 博客园...
- 正则表达式学习(二)
- 毕竟几人真得鹿,不知终日梦为鱼
- PostgreSQL基础语法
- 【腾讯云FinOps Crane 集训营】让我看看还有谁没用过crane这个降本利器
- 服务器创建和附加虚拟磁盘,详解Hyper-V创建虚拟磁盘存储配置攻略
- 2017写给迷茫的自己
- linux允许指定ip访问
- struts 修改拦截器修改返回值_Struts2自定义拦截器
- 解决微信支付申请扫描提示“操作超时,请重新扫码确认问题”