现在沉浸式页面非常受欢迎,那配套页面的Dialog也需要做到沉浸式才不会显得唐突,本文记录沉浸式弹窗实现。

一、代码实现

(一)创建自定义LoadingDialog继承自Dialog

public class LoadingDialog extends Dialog {public LoadingDialog(@NonNull Context context) {super(context, R.style.AlertDialog_AppCompat_LoadingNoBg);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.loading_dialog);}}

(二)在onCreate方法中实现测量视口大小,设置Dialog的宽高

public class LoadingDialog extends Dialog {public LoadingDialog(@NonNull Context context) {super(context, R.style.AlertDialog_AppCompat_LoadingNoBg);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.loading_dialog);//        沉浸式dialog适配 核心代码Window window = getWindow();window.getDecorView().setSystemUiVisibility(getSystemUiVisibility());//获取视口全屏大小window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); //这个flag表示window负责绘制状态栏的背景当设置了这个flag,系统状态栏会变透明,同时这个相应的区域会被填满 getStatusBarColor() and getNavigationBarColor()的颜色window.setStatusBarColor(Color.TRANSPARENT);//设置bar为透明色WindowManager.LayoutParams layoutParams = window.getAttributes();//获取dialog布局的参数if (getBackgroundDrawable() != null) {window.setBackgroundDrawable(getBackgroundDrawable());}layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;//宽全屏layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;//高全屏window.setNavigationBarColor(Color.TRANSPARENT);//设置导航栏颜window.setType(WindowManager.LayoutParams.TYPE_APPLICATION_PANEL);//内容扩展到导航栏if (Build.VERSION.SDK_INT >= 28) {layoutParams.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;}window.setAttributes(layoutParams);}//设置背景颜色protected Drawable getBackgroundDrawable() {return null;}protected int getSystemUiVisibility() {return View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;}
}

二、附上效果图

三、附上参考文档:

WindowManager.LayoutParams的各种flag含义
原文作者棒棒哒!

Android 沉浸式Dialog弹框相关推荐

  1. Android自定义Dialog弹框效果

    这是弹框输入密码的,这里还有一个是我发现一个博友写的自定义Dialog弹框信息和背景阴影显示 ,两者结合一起看,最好了!!! 下面是弹框输入密码的!!! 首先需要自定义一个类,继承Dialog pac ...

  2. Android 沉浸式状态栏必须要知道的那些事

    Android 的沉浸式状态栏 文章目录 Android 的沉浸式状态栏 前言 一. 什么是沉浸式状态栏? 二.沉浸式状态栏的实现阶段 2.1.Android4.4 - Android 5.0 (AP ...

  3. 史上最完美的Android沉浸式状态导航栏攻略

    前言 最近我在小破站开发一款新App,叫高能链.我是一个完美主义者,所以不管对架构还是UI,我都是比较抠细节的,在状态栏和导航栏沉浸式这一块,我还是踩了挺多坑,费了挺多精力的.这次我将我踩坑,适配各机 ...

  4. android沉浸式 字体,Android沉浸式状态栏背景色以及字体颜色的修改

    在activity中设置透明状态栏 的思路: 1.让activity的布局全屏 此时布局会和状态栏重叠 2.让布局最上方预留出和状态栏高度一样的高度,将状态栏的背景色设置为透明 效果如下: 一般是在s ...

  5. android沉浸式状态栏 图片背景,Android 补充 LayerDrawable 沉浸式状态栏

    小菜前些日子整理了两次小小的沉浸式状态栏的总结:Android 沉浸式状态栏的多种样式 和 Android 沉浸式状态栏以及伪沉浸式状态栏.今天小菜再稍稍补充一点,Java/Kotlin 代码中设置 ...

  6. Android沉浸式模式状态栏(二)

    其实说到沉浸式状态栏这个名字,真不知道这种叫法是谁先发起的.因为Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模式(Immersive Mode)这种说法.而有些人在没有完全了解清 ...

  7. 高大上的Android沉浸式状态栏?

    背景 之前做过Android沉浸式状态栏的相关需求,但是一直忙于工作,没时间系统的整理下沉浸式相关的知识,所以今天抽出时间,写一篇 Android沉浸式状态栏的文章. 何为沉浸式 沉浸式就是要给用户提 ...

  8. Android 沉浸式状态栏 实现方式二 ( 更简单 )

    以前写过一个沉浸式状态栏 的实现方式 Android 沉浸式状态栏 实现方式一 现在有个更为简单的实现方式 . 相关链接 http://www.apkbus.com/forum.php?mod=vie ...

  9. android 5.0状态栏下载地址,Android沉浸式状态栏(5.0以上系统)

    Android沉浸式状态栏(5.0以上系统) 沉浸式状态栏可以分为两种: 1.直接给状态栏设置颜色 (如下图:) 这里写图片描述 java代码形式: if (Build.VERSION.SDK_INT ...

  10. Android 沉浸式状态栏完美解决方案

    Android 沉浸式状态栏完美解决方案 参考文章: (1)Android 沉浸式状态栏完美解决方案 (2)https://www.cnblogs.com/dingxiansen/p/9929828. ...

最新文章

  1. MyEclipse中配置Web Service Client可能遇到问题及解决方案(转)
  2. 数据结构与算法:二分法
  3. ubuntu虚拟机开机无法进入系统(initramfs)
  4. SAP Spartacus后台CMS Component和Angular Component的映射关系
  5. 南京的学员看过来 | NVIDIA DLI深度学习入门培训
  6. 1月15 remap 标签的使用(源代码成功运行,但通信有问题,可能是remap的问题)
  7. (转)马云:不要迷信成功学 要多看别人的失败经历
  8. 电动车无刷电机控制器软件设计要点(整理)
  9. ps使用脚本生成fnt
  10. 使用运动探测器和训练有素的DNN检测害虫
  11. 软件工程师必备的简历模板
  12. x86系统引导(1)
  13. Redis中什么是Big Key(大key)问题?如何解决Big Key问题?
  14. win10投影无法正常使用:我们正在确认此功能 解决方法
  15. Pintech品致柔性探头柔性电流传感器的技术特点
  16. 云服务赛道竞速,谁是云背后的力量?
  17. 手游方舟怎么输入代码_方舟自定义代码怎么输入 | 手游网游页游攻略大全
  18. ehviewer_EhViewer(E绅士)最新版-EhViewer2021里站最新版v1.7.6-3355游戏网
  19. 【电工基础】电路的基本概念与基本定律
  20. 电脑各类快捷键及运行命令

热门文章

  1. PHP靶向药,第三代靶向药已成功进入中国肺癌指南
  2. 坦克大战的网络对战实现C++(客户端+服务端)
  3. OCP大会 | 腾讯开放光网络平台(附PDF)
  4. 微信公众平台被动回复用户消息开发全步骤
  5. 缺少所需的CD/DVD驱动器设备驱动程序
  6. 验证是不是合法的18位身份证号码代码
  7. 2021中国科技大学计算机博士招生,中国科学技术大学2021年拟录取博士研究生名单公示,2661人!...
  8. 巴布亚企鹅需要开启sshd的root权限
  9. FMI飞马网 | 人工智能/大数据/程序/语言/项目管理/机器学习/Python书籍免费赠书
  10. matlab数学建模-非线性规划(无约束规划、有约束规划)