# SmartAlertPop
封装一个独立弹窗Module,这里的弹窗包括普通的Dialog方式弹框和WindowManager方式弹窗。提供一种管理项目里面弹窗的方案,便于后期修改和维护。首先描述一个在大项目中普遍存在的一个现象:
由于项目的功能多,负责功能的人不同,当功能中需要一个普通的确定取消对话框时,大部分人都选择自己写了一个,自己new一个独立的弹窗出来。这样做的好处有以下几个:
1. 代码逻辑独立,自己写的代码自己能控制
2. 快速方便,便于修改,便于满足各种奇怪的需求
可是这个做法导致项目中存在大量的代码冗余,大量的分散的弹窗,短期内一般也不会有什么问题,如果这个时候项目要重构,要修改所有弹窗的样式,接下来面临几个问题:
1. 不知道有多少个弹窗
2. 不知道代码中什么地方会有弹窗
3. 不知道弹窗写法都有哪些(样式不知道,弹出的方式是Dialog还是WindowManager)
4. 改动点多,工作量大,风险大
项目重构就要把所有弹窗重新管理起来,方便维护和拓展,具体设计与实现细节见博客,下面是弹窗的样式:
## 动画演示
![动画演示](/docpic/example.GIF "app操作演示")
## 弹窗样式截图
### 首页
![homepage1](/docpic/homepage1.png "首页1") ![homepage2](/docpic/homepage2.png "首页2")
### 对话框弹窗类型
![type1](/docpic/type1.png "type1") ![type2](/docpic/type2.png "type2")
![type3](/docpic/type3.png "type3") ![type4](/docpic/type4.png "type4")
![type101](/docpic/type101.png "type101") ![type103](/docpic/type103.png "type103")
![type106](/docpic/type106.png "type106")
![type102](/docpic/type102.png "type102") ![type104](/docpic/type104.png "type104")
![type105](/docpic/type105.png "type105")
![type201](/docpic/type201.png "type201")
![type202](/docpic/type202.png "type202") ![type203](/docpic/type203.png "type203")
### WindowManager弹窗类型
![windowtype1](/docpic/windowtype1.png "windowtype1")
![windowtype2](/docpic/windowtype2.png "windowtype2")
## 使用说明
在自己的项目中导入CommonAlertPop Module,参考本案例中的使用方法即可,如下:
**Dialog弹窗Type定义**
![types](/docpic/types.png "DialogType定义")
**Dialog弹窗使用**
final ICommonDialog dialog = CommonDialogFactory.createDialogByType(this, DialogUtil.DIALOG_TYPE_1);
dialog.setTitleText("DIALOG_TYPE_1");
dialog.setCancelBtn(R.string.cancel, new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
dialog.setOkBtn(R.string.ok, new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.setCanceledOnTouchOutside(true);
dialog.show();
**WindowManager弹窗Type定义**
![windowtypes](/docpic/windowtypes.png "WindowManager弹窗类型定义")
**WindowManager弹窗使用**
final ICommonWindowPop windowPop = CommonWindowPopFactory.createWindowPopByType(this, WindowPopUtil.WINDOW_POP_TYPE_2);
windowPop.setTitleBgType(WindowPopUtil.TITLE_SAFE_BLUE);
windowPop.setTitleText("WINDOW_POP_TYPE_2");
windowPop.setContentView(R.layout.dialog_custom_content_test_layout);
windowPop.setCanceledOnTouchOutside(true);
windowPop.setCancelBtn(R.string.cancel, new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
windowPop.setOkBtn(R.string.ok, new View.OnClickListener() {
@Override
public void onClick(View v) {
windowPop.dismiss();
}
});
windowPop.show();
具体实现细节参考博文地址:[Android重构与设计之路,从整理提示对话框弹窗开始 ](http://www.cnblogs.com/popfisher/p/6028613.html "Android重构与设计之路,从整理提示对话框弹窗开始")
本项目只是提供一种基本的框架,具体的对话框样式可以根据自身项目的需求而改变,可以随意添加删除修改一种类型,主要是为了统一管理项目中的弹窗,方便维护与管理。
没有合适的资源?快使用搜索试试~ 我知道了~
封装封装一个弹窗独立独立个个这里的普通普通.zip
共148个文件
xml:69个
png:36个
java:26个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 15 浏览量
2023-04-05
13:09:34
上传
评论
收藏 3.53MB ZIP 举报
温馨提示
封装封装一个弹窗独立独立个个这里的普通普通.zip
资源推荐
资源详情
资源评论
收起资源包目录
封装封装一个弹窗独立独立个个这里的普通普通.zip (148个子文件)
gradlew.bat 2KB
example.GIF 3.08MB
.gitignore 97B
.gitignore 7B
.gitignore 7B
build.gradle 573B
build.gradle 498B
build.gradle 483B
settings.gradle 34B
gradlew 5KB
gradle-wrapper.jar 52KB
ProgressWheel.java 20KB
AlertPopTestMainActivity.java 12KB
WindowPopBase.java 8KB
DialogUtil.java 7KB
DialogBase.java 5KB
DialogType202.java 3KB
WindowPopType2.java 3KB
DialogType104.java 3KB
DialogType201.java 3KB
CoreDialog.java 3KB
DialogType103.java 3KB
WindowPopType1.java 3KB
DialogType1.java 3KB
DialogType203.java 3KB
DialogType102.java 2KB
DialogType105.java 2KB
CommonDialogFactory.java 2KB
DialogType101.java 2KB
DialogType106.java 2KB
DialogType4.java 2KB
ICommonDialog.java 2KB
DialogType3.java 1KB
DialogType2.java 1KB
WindowPopUtil.java 1KB
ICommonWindowPop.java 1004B
CommonWindowPopFactory.java 847B
README.md 4KB
homepage1.png 30KB
homepage2.png 30KB
types.png 17KB
type102.png 11KB
type104.png 11KB
ic_launcher.png 10KB
ic_launcher.png 10KB
type105.png 10KB
windowtype1.png 9KB
type202.png 9KB
type201.png 9KB
windowtype2.png 8KB
type203.png 8KB
common_dialog_title_logo.png 8KB
ic_launcher.png 8KB
ic_launcher.png 8KB
type103.png 7KB
type101.png 7KB
windowtypes.png 7KB
type4.png 5KB
type106.png 5KB
ic_launcher.png 5KB
ic_launcher.png 5KB
ic_launcher.png 5KB
type1.png 5KB
type3.png 4KB
ic_launcher.png 3KB
ic_launcher.png 3KB
common_dialog_bg.9.png 3KB
type2.png 3KB
ic_launcher.png 2KB
ic_launcher.png 2KB
dialog_gen_bg.9.png 1KB
common_dialog_content_arrow_bg.9.png 553B
common_dialog_detail_up_arrow.png 145B
common_dialog_detail_background.9.png 145B
proguard-rules.pro 650B
proguard-rules.pro 650B
gradle.properties 730B
gradle-wrapper.properties 233B
设计文档.vsdx 52KB
styles.xml 10KB
activity_alert_pop_test_main.xml 5KB
common_dialog_layout_type201.xml 3KB
common_dialog_layout_type202.xml 2KB
misc.xml 2KB
common_dialog_layout_type203.xml 2KB
common_dialog_layout_type3.xml 2KB
common_dialog_layout_type103.xml 2KB
common_dialog_layout_type104.xml 2KB
common_dialog_layout_type1.xml 1KB
dimens.xml 1KB
common_dialog_layout_type106.xml 1KB
common_dialog_layout_type101.xml 1KB
common_dialog_layout_type105.xml 1KB
common_dialog_layout_type102.xml 1KB
colors.xml 1KB
common_dialog_layout_type2.xml 935B
common_dialog_layout_type4.xml 927B
styles.xml 900B
common_dialog_ok_large_btn_press_bg.xml 765B
common_dialog_cancel_large_btn_press_bg.xml 765B
共 148 条
- 1
- 2
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9156
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功