Dialog层级(PopupWindow是在Dialog下面的)

  • 有时需要有多个Dialog,并且要求之间有层级关系。当然可以通过逻辑来控制Dialog弹出的先后顺序。
  • 如果要求后弹出的Dialog在上一个Dialog的底层,可以需要通过层级来控制。

正常情况下

  • 红色弹出第二个弹出,所以在上面

  • 通过层级修改,让红色弹出在蓝色下面

  • 通过id来设置颜色,和层级
window.setType(WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW);
  • WindowManager.LayoutParams.XX有许多种取值,默认是TYPE_APPLICATION

public class DialogFragment1 extends DialogFragment {private TextView tvTest;private int id;public DialogFragment1() {// Required empty public constructor}public void show(@NonNull FragmentManager manager, @Nullable String tag, int id) {super.show(manager, tag);this.id = id;}@NonNull@Overridepublic Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {if (getContext() != null) {Dialog dialog = new Dialog(getContext(), getTheme());Window window = dialog.getWindow();if (window != null) {window.setDimAmount(0.5f);window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));if (id == 2) {window.setType(WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW);}}return dialog;}return super.onCreateDialog(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment_dialog, container, false);initView(view);initAnim();return view;}private void initAnim() {//加入动画if (getContext() != null && getDialog() != null && getDialog().getWindow() != null) {ObjectAnimator.ofFloat(getDialog().getWindow().getDecorView(), "translationX", getScreenSize(getContext())[0], 0).setDuration(1000).start();}}private void initView(View view) {tvTest = view.findViewById(R.id.tv_test);tvTest.setText(String.valueOf(id));if (id == 2) {tvTest.setBackgroundColor(Color.RED);}}/*** 获取屏幕宽高** @param context* @return*/private static int[] getScreenSize(Context context) {DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();return new int[]{displayMetrics.widthPixels, displayMetrics.heightPixels};}
}

Android Dialog之间的层级设置(WindowManager.LayoutParams)相关推荐

  1. Unity UGUI NGUI 模型 粒子特效 三者之间 渲染层级设置

    目录 1.介绍两大UI插件NGUI和UGUI  2.unity渲染顺序控制方式  3.NGUI的控制  4.UGUI的控制  5.模型深度的控制  6.粒子特效深度控制  7.NGUI与模型和粒子特效 ...

  2. android dialog 自定义布局,如何设置AlertDialog的自定义布局?

    调用我的对话框:alertDialog = showInfoDialog(message = "$wrongPasscodeMessage\n$retryMessage") 方法如 ...

  3. Android Dialog 弹框之外的区域 默认透明背景色修改

    就是下面弹框之外的颜色值 透明度修改 一般弹框外的区域的不是全透明  都有一个默认的值使用的属性为 setDimAmount 这个默认值是0.5 这个值的范围在 0-1 之间 如果设置为1 就是全黑色 ...

  4. WindowManager.LayoutParams详解总结和对应实例

    总结的比较好,并加上对应实例配合参考理解 public static class WindowManager.LayoutParams extends ViewGroup.LayoutParams i ...

  5. Android窗口机制(五)最终章:WindowManager.LayoutParams和Token以及其他窗口Dialog,Toast

    转自:https://www.jianshu.com/p/bac61386d9bf 前面几篇文章基本介绍完Activity上的窗口机制,但是我们常见的窗口就还有Dialog,Toast这些,本篇文章就 ...

  6. Android WindowManager和WindowManager.LayoutParams的使用以及实现悬浮窗口的方法

    1.理清概念 我们使用过Dialog和PopupWindow,还有Toast,它们都显示在Activity之上.那么我们首先需要理解的是android中是如何去绘制这些UI的呢?这里我只讲我所理解的, ...

  7. Android 系统(48)---WindowManager.LayoutParams 详解

    WindowManager.LayoutParams 详解 WindowManager.LayoutParams 是 WindowManager 接口的嵌套类:继承于 ViewGroup.Layout ...

  8. WindowManager.LayoutParams之screenBrightness亮度设置

    在上层可以通过设置screenBrightness 来实现背光亮度调节. MAX_SCREEN_BRIGHTNESS为255,brightness 在0和255之间WindowManager.Layo ...

  9. Android之WindowManager.LayoutParams介绍

    image.png .. LayoutParams WindowManager.LayoutParams 是 WindowManager 接口的嵌套类:继承于 ViewGroup.LayoutPara ...

  10. Android通过WindowManager.LayoutParams修改Activity窗口亮度流程

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_38059988/article/ ...

最新文章

  1. [WUSTCTF2020]level4
  2. httpclient爬取性感美图
  3. learning python学习小记(一)
  4. 【MySQL性能优化】MySQL分库分表与水平分割取模案例(三)
  5. 如何快速的打造python 版的vim ide
  6. 工控软件IFIX加入WEB显示图表
  7. python中查找字符串_python中字符串操作--截取,查找,替换
  8. LeetCode(496)——下一个更大元素 I(JavaScript)
  9. idea集成testng_idea安装testng插件后,无法使用调用testng里面的类
  10. 计算机内加减法的溢出处理
  11. 新巴巴运动网完整教程
  12. ASP.NET Web程序设计 第九章 初识 Web Pages
  13. python面板数据分析代码_面板数据分析是什么如何进行面板数据分析?
  14. PAT 甲级 1014. Waiting in Line
  15. 如何在Mac电脑中使用键盘移动操作鼠标焦点?如何在Mac中打开辅助键盘?
  16. 小程序入门第二课 — 组件与WXML语法
  17. iphone 11显示连接服务器出现错误,iPhone11投屏方法有哪些?iPhone投屏失败的原因及解决方法...
  18. 对话Nodebrick创始人:区块链游戏需要更多玩家,韩国开发者偏保守
  19. python人脸识别解锁电脑_Python 实现在 App 端的人脸识别!手机解锁人脸识别!
  20. WinHttp.WinHttpRequest.5.1

热门文章

  1. android 自定义indicator,【Android】TabLayout 自定义指示器 Indicator 样式
  2. Java培训要多久以后才能工作?
  3. mysql计算连续天数,mysql连续登录天数,连续天数统计
  4. 5月第2周业务风控关注 | 等保2.0将于5月13日正式发布
  5. 人们有时对机率存在的错误的认识
  6. 怎么快速无损的将FLV格式转换MP4格式
  7. 003_创建simulink文件
  8. JavaScript基础入门10
  9. O2O商城网站建设方案
  10. 微软输入法怎么打开软键盘?