新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关使用android dialog如何实现根据弹窗等级排序显示,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
沙湾ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!背景:由于主界面可能弹窗很多弹窗,需求要求某个dialog必须在前面显示,如果再消失监听中,线性判断,每个dialog都去判断工作量巨大,且不易阅读。所以做了一个弹窗排序的项目。这里只是讲解单个activity中的弹窗排序,demo中还有维护多个activity 弹窗排序,详细看最下面github
做到工具组件化,不侵入原项目代码,无需继承,使用方便。
原理:当有一个dialog添加显示时,判断等级是否大于,大于则显示,否则则添加到等待队列
private void show(int level, Dialog dialog, DialogInterface.OnDismissListener onDismissListener){ if(dialog == null){ return; } DialogLevelModel topDialog = getTopShowingDialog(); DialogLevelModel inModel = new DialogLevelModel(level, dialog, activity); new DismissListenerBinder(inModel,this,onDismissListener).bind(); if(topDialog ==null || level >= topDialog.level){ realShow(inModel); }else { waitList.sortAdd(new DialogLevelModel(level, dialog, activity)); } }