首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

三句代码创建全屏Dialog或者DialogFragment:带你从源码角度实现全屏Dialog

不让显示Title部分,关键点2就是常用setContentView,关键点3根4就是为了全屏对话框做修改,关键点4必须要放在setContent后面,因为如果放在setContent该属性会被冲掉无效...如果你想封装一个统一全屏Dialog,那可以吧关键点1放在构造方法中,把关键点3与4放在onStart中,其实就是主要是保证setContentView执行顺序, public class FullScreenDialog...针对DialogFragment实现方式 Android比较推荐采用DialogFragment实现对话框,它完全能够实现Dialog所有需求,并且还能复用Fragment生命周期管理,被后台杀死后还能自动恢复...之后再来看最后遗留一个问题,为什么么要Window.FEATURE_NO_TITLE属性,并且需要在setContentView被调用之前。...创建沉浸式全屏Dialog 在全屏Dialog基础上,我们可以创建沉浸式Dialog,也就是让Dialog内容区域延展到状态栏下方,由于这里用到了fitsystemwindow,所以要牵扯DecorView

3.2K40
您找到你想要的搜索结果了吗?
是的
没有找到

仿iOS底部弹框实现及分析

1 弹框布局: 我们可以来看下这个弹框有哪些显示: 标题(一个标题) ? 选项(N个选项,此处图片只有关闭这一个选项) ? 底部一个取消按钮(一个取消按钮) ?...所以我们先考虑这个弹框布局就需要: ? 因为中间菜单是一个列表,所以根据这个图我们可以想到我们所要写弹框布局大致为: ? 我们已经规划好了弹框布局,现在我们要开始实现弹框了。...2 实现弹框: 因为后来谷歌推荐使用DialogFragment,所以我们此处弹框也是使DialogFragment。...标题内容上方有一块区域 我们弹框布局底部背景色默认是灰色 我们针对这二个先做处理: 其实我们上方一块区域是弹框标题, 我们在IOSDialogFragment中添加: ?...6 点击空白让弹框消失问题: 当点击上方一些空白处,我们会发现我们弹框会直接消失,而不会像我们上面点击按钮点击事件那样,弹框先往下移动再消失,因为DialogFragment默认点击弹框外时候

1.8K10

android推荐使用dialogFrament而不是alertDialog

DialogFragment在android 3.0时被引入。是一种特殊Fragment,用于在Activity内容之上展示一个模态对话框。典型用于:展示警告框,输入框,确认框等等。...6、DialogFragment做屏幕适配 我们希望,一个对话框在大屏幕上以对话框形式展示,而小屏幕上则直接嵌入当前Actvity中。这种效果对话框,只能通过重写onCreateView实现。...,如果是大屏幕则直接以对话框显示,如果是小屏幕则嵌入我们Activity布局中 这个R.bool.large_layout是我们定义资源文件: 在默认values下新建一个bools.xml <...而通过DialogFragment实现对话框则可以完全不必考虑旋转问题。...可以看到,传统Dialog旋转屏幕时就消失了,且后台log会报异常~~~使用DialogFragment则不受影响。 好了,关于DialogFragment介绍结束~~~~ 源码点击下载

2.3K50

Android 撸起袖子,自己封装 DialogFragment

内容之上显示一个静态对话框。...基类,那么接下来我们当然要好好地来实现各种类型 DialogFragment 了,我思路是创建一个 DialogFragmentHelper 作为实现提示框帮助类,帮我们把代码都封装起来,使用时候只需要关注与...,将一个 ProgressDialog 传进去,然后依次传入 cancelable 和 cancelListener,最后调用 show() 函数,将DialogFragment 显示出来,因为我们使用了构造函数重载...应该还没忘了我们上面创建了一个 IDialogResultListener 用于 DialogFragment 与逻辑层之间进行数据监听吧,为了能传入各种各样类型数据,这里我使用了 泛型 来进行处理...---- 猜你喜欢 手把手教你从零开始做一个好看 APP Android 能让你少走弯路干货整理 Android 一款十分简洁、优雅日记 APP

1.3K41

DialogFragment踩坑记

忙完了美国大选,可以继续更新公众号了 DialogFragment推出来已经很久了,网上相关文档一大堆,但是稍微不注意,还是会踩坑,本篇基于自身经历总结 要选android X下DialogFragment...普通Fragment还是DialogFragment 同时设置不要Title跟背景 隐藏Dialog 不保留活动 显示逻辑 推荐使用DialogFragment 要选android X下DialogFragment...版本,记得要选择第一种DialogFragment,当然,系统源码也很贴心把它FrameworkDialogFragment设置为不推荐使用,而且还注明让你使用support包下面的DialogFragment...特别强调是,这个报错自测阶段很不容易暴露出来,但是一上线上环境就容易发生,需要注意规避 不保留活动 这是一个不得不考虑场景,实际情况下,发生了不保留活动,业务这边逻辑一般是重置了,所以也是不需要再展示...在监听到onResume时候,触发Dialog显示,代码就不贴了 推荐使用DialogFragment 建议展示Dialog地方,统一使用DialogFragment,更好处理生命周期各种场景

1.9K30

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

关于详解Android应用中DialogFragment基本用法,大家可以参考下。 1、 概述 DialogFragment在android 3.0时被引入。...是一种特殊Fragment,用于在Activity内容之上展示一个模态对话框。典型用于:展示警告框,输入框,确认框等等。...2、 好处与用法 使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好管理其声明周期,它和Fragment有着基本一致声明周期。...且DialogFragment也允许开发者把Dialog作为内嵌组件进行重用,类似Fragment(可以在大屏幕和小屏幕显示出不同效果)。...高度固定,那么我们需要设置DialogFragment高度,在FragmentonResume()声明周期方法中设置window宽高即可。

4.3K20

项目需求讨论-仿ios底部弹框实现及分析

弹框布局: 我们可以来看下这个弹框有哪些显示: 标题(一个标题) ? 选项(N个选项,此处图片只有关闭这一个选项) ? 底部一个取消按钮(一个取消按钮) ?...因为中间菜单是一个列表,所以根据这个图我们可以想到我们所要写弹框布局大致为: <!...---- 实现弹框: 因为后来谷歌推荐使用DialogFragment,所以我们此处弹框也是使用DialogFragment。...标题内容上方有一块区域 我们弹框布局底部背景色默认是灰色 我们针对这二个先做处理: 其实我们上方一块区域是弹框标题, 我们在IOSDialogFragment中添加:@Override public...所以消失时候我们不能单纯DialogFragment执行dismiss(),而是先让弹框执行下移动画效果,然后再dismiss()。

1.1K30

DialogFragment自动弹出软键盘,消失时关闭软键盘

hideSoftInputFromWindow(binding.etChat.windowToken, 0) } 复制代码 在DialogFragment显示时弹出软键盘 在DialogFragment...显示时有两种方式弹出软键盘: 1、在onViewCreated中发送一个延时任务 etChat.postDelayed({ showSoftInput() }, 200) 复制代码 注意:如果直接调用显示键盘不会起作用...再来看 mServedView不为null值,发现是我 DialogFragment 依附 activity布局控件,可以理解为当前获取焦点控件,因此可以传入activity中当前焦点所在view...自定义Dialog在dismiss之前通知 DialogFragment 关闭软键盘 转变思路,既然在 DialogFragment 中无法提前监听dialog关闭,那就自定义Dialog重写dismiss...最后,还有一种方式就是使用全屏dialog,在原先空白区域加一个透明View,设置view点击事件去关闭软键盘和弹窗,这样就避免了点击空白处关闭问题。

5K40

Android后台杀死系列之一:FragmentActivity及PhoneWindow后台杀死处理机制

举个栗子 我们创建一个Activity,并且在onCreate函数中新建并show一个DialogFragment,之后通过某种方式将APP异常杀死(RogueKiller模拟后台杀死工具),再次从最近任务唤起...虽然被杀死了,但是onCreate函数在执行时候还是只执行了一次啊,为什么会出现两个DialogFragment,这里其实就有一个DialogFragment是通过Android自身恢复重建机制重建出来...Fragmentadd逻辑:此时被后台杀死,或旋转屏幕,被恢复DialogFragmentActivity时会出现两个FragmentDialog,一个被系统恢复一个新建。...,2.3之后,放在了onStop函数之前,也就说Activity失去焦点后,可能会由于内存不足,被回收情况下,都会去执行onSaveInstanceState。...Activity都是可能被后台杀死,比如,在开发者选项中打开不保留活动,就会达到这种效果,在启动另一个Activity时,上一个Activity保存流程大概如下,这里先简单描述,在下一篇原理篇时候

2.9K30

妖怪般VerifyError | 奇形怪状bug

而之后简单分析了下异常,猜测dialogfragment类本身就出现了问题,所以导致了在类加载时候,验证字节码安全性失败。但是这部分可是androidx内部代码啊,这不就是不讲武德吗?...因为这部分我司做了一部分字节码父类替换,所以DialogFragment其实已经被修改了一部分了。...而在新版本androidx中,则给Fragment添加了另外一个有参构造函数,所以这部分就出现了异常。...借住AS查看Apkbytecode 另一个大佬顺便教会了我如何从apk中去查看最终产物bytecode方式。一个不需要用jadx反编译整个apk就可以快速查看class字节码方式。...这个是摘自另外一个哔哩哔哩安卓巨佬了。

85340

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

介绍 DialogFragment在android 3.0时被引入。是一种特殊Fragment,用于在Activity内容之上展示一个模态对话框。典型用于:展示警告框,输入框,确认框等等。...在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。...本文主要给大家介绍了关于Android中DialogFragment自定义背景与宽高相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细介绍吧。...dialog.getWindow().setLayout((int) (dm.widthPixels * 0.9), (int) (dm.heightPixels * 0.76)); } } 总结 以上就是这篇文章全部内容了...,希望本文内容对大家学习或者工作能带来一定帮助,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn支持。

1.3K41

Android如何自定义升级对话框示例详解

前言 本文主要给大家介绍了关于Android自定义升级对话框相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细介绍吧。 实现效果如下所示 ?...其实这也只是一个DialogFragment 而已,重点只是在于界面的设计 想要使用做出这样一个DialogFragment ,需要自定义一个View,然后将该View传入到该Dialog中 先定义布局...,一个TextView用于标题,一个TextView用于升级内容阐述,一个ImageView,一个确认升级按钮 <?.../white</item <item name="android:textSize" 17sp</item </style 建立 DialogFragment 子类 /** * 作者: 叶应是叶...此时 Dialog 四个角还都是直,这里再来将之修改为圆角 在drawable文件夹下新建一个root.xml文件,作为Dialog使用到布局根Layout背景 <?

56421
领券