这是一个基于AlertDialog和Dialog这两个类封装的多种弹出框样式,其中提供各种简单样式的弹出框使用说明。同时也可自定义弹出框。
项目地址:https://www.github.com/jjdxmashl/jjdxm_dialogui
特性
1.使用链式开发代码简洁明了
2.所有的弹出框样式都在DialogUIUtils这个类中完成,方便查阅方法
3.可以自定义弹出框字体样式
4.简单的类似加载框的样式可以支持两种主题更改默认白色和灰色
截图
demo下载
Download or grab via Maven:
com.dou361.dialogui jjdxm-dialoguix.x.x
or Gradle:compile 'com.dou361.dialogui:jjdxm-dialogui:x.x.x'
历史版本:
compile 'com.dou361.dialogui:jjdxm-dialogui:1.0.1'
compile 'com.dou361.dialogui:jjdxm-dialogui:1.0.0'
jjdxm-dialogui requires at minimum Java 9 or Android 2.3.
代码混淆
根据你的混淆器配置和使用,您可能需要在你的proguard文件内配置以下内容:
-keep classcom.dou361.** {
*;
}
快速开始
step1
如果需要使用toast类,采用单例模式的,多次调用toast后只会显示一个,需要初始化DialogUIUtils类,否则会抛异常,使用前初始化即可,代码如下
DialogUIUtils.init(appContext);
step2
如果不需要使用toast类,可以不操作step1,直接使用相对于的弹出框即可。以下分别是部分弹出框的调用代码案例。
自定义弹出框
/**
* 自定义弹出框 默认居中可取消可点击
*
* @param context 上下问
* @param contentView 自定义view
* @return
*/
publicstaticBuildBean showCustomAlert(Context context, View contentView)
/**
* 自定义弹出框 默认可取消可点击
*
* @param context 上下文
* @param contentView 自定义view
* @param gravity 显示window的位置例如Gravity.center
* @return
*/
publicstaticBuildBean showCustomAlert(Context context, View contentView, intgravity)
/***
* 自定义弹出框
*
* @param context 上下文
* @param contentView 自定义view
* @param gravity 显示window的位置例如Gravity.center
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @return
*/
publicstaticBuildBean showCustomAlert(Context context, View contentView, intgravity, booleancancleable, booleanoutsideTouchable)
具体使用
View rootView = View.inflate(activity, R.layout.custom_dialog_layout, null);
DialogUIUtils.showCustomAlert(this, rootView).show();
弹出toast
/**
* 弹出toast 默认白色背景可取消可点击
*
* @param context 上下文
* @param msg 提示文本
*/
publicstaticBuildBean showToastTie(Context context, CharSequence msg)
/**
* 弹出toast 默认可取消可点击
*
* @param context 上下文
* @param msg 提示文本
* @param isWhiteBg true为白色背景false为灰色背景
*/
publicstaticBuildBean showToastTie(Context context, CharSequence msg, booleanisWhiteBg)
/**
* 弹出toast
*
* @param context 上下文
* @param msg 提示文本
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param isWhiteBg true为白色背景false为灰色背景
*/
publicstaticBuildBean showToastTie(Context context, CharSequence msg, booleancancleable, booleanoutsideTouchable, booleanisWhiteBg)
具体使用
DialogUIUtils.showToastTie(this, "加载中...").show();
横向加载框
/**
* 横向加载框 默认白色背景可取消可点击
*
* @param context 上下文
* @param msg 提示文本
*/
publicstaticBuildBean showLoadingHorizontal(Context context, CharSequence msg)
/**
* 横向加载框 默认可取消可点击
*
* @param context 上下文
* @param msg 提示文本
* @param isWhiteBg true为白色背景false为灰色背景
*/
publicstaticBuildBean showLoadingHorizontal(Context context, CharSequence msg, booleanisWhiteBg)
/**
* 横向加载框
*
* @param context 上下文
* @param msg 提示文本
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param isWhiteBg true为白色背景false为灰色背景
*/
publicstaticBuildBean showLoadingHorizontal(Context context, CharSequence msg, booleancancleable, booleanoutsideTouchable, booleanisWhiteBg)
具体使用
DialogUIUtils.showLoadingHorizontal(this, "加载中...").show();
md风格横向加载框
/**
* md风格横向加载框 默认白色背景可取消可点击
*
* @param context 上下文
* @param msg 提示文本
*/
publicstaticBuildBean showMdLoadingHorizontal(Context context, CharSequence msg)
/**
* md风格横向加载框 默认可取消可点击
*
* @param context 上下文
* @param msg 提示文本
* @param isWhiteBg true为白色背景false为灰色背景
*/
publicstaticBuildBean showMdLoadingHorizontal(Context context, CharSequence msg, booleanisWhiteBg)
/**
* md风格横向加载框
*
* @param context 上下文
* @param msg 提示文本
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param isWhiteBg true为白色背景false为灰色背景
*/
publicstaticBuildBean showMdLoadingHorizontal(Context context, CharSequence msg, booleancancleable, booleanoutsideTouchable, booleanisWhiteBg)
具体使用
DialogUIUtils.showMdLoadingHorizontal(this, "加载中...").show();
竖向加载框
/**
* 竖向加载框 默认白色背景可取消可点击
*
* @param context 上下文
* @param msg 提示文本
*/
publicstaticBuildBean showLoadingVertical(Context context, CharSequence msg)
/**
* 竖向加载框 默认可取消可点击
*
* @param context 上下文
* @param msg 提示文本
* @param isWhiteBg true为白色背景false为灰色背景
*/
publicstaticBuildBean showLoadingVertical(Context context, CharSequence msg, booleanisWhiteBg)
/**
* 竖向加载框
*
* @param context 上下文
* @param msg 提示文本
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param isWhiteBg true为白色背景false为灰色背景
*/
publicstaticBuildBean showLoadingVertical(Context context, CharSequence msg, booleancancleable, booleanoutsideTouchable, booleanisWhiteBg)
具体使用
1DialogUIUtils.showLoadingVertical(this, "加载中...").show();
md风格竖向加载框
/**
* md风格竖向加载框 默认白色背景可取消可点击
*
* @param context 上下文
* @param msg 提示文本
*/
publicstaticBuildBean showMdLoadingVertical(Context context, CharSequence msg)
/**
* md风格竖向加载框 默认可取消可点击
*
* @param context 上下文
* @param msg 提示文本
* @param isWhiteBg true为白色背景false为灰色背景
*/
publicstaticBuildBean showMdLoadingVertical(Context context, CharSequence msg, booleanisWhiteBg)
/**
* md风格竖向加载框
*
* @param context 上下文
* @param msg 提示文本
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param isWhiteBg true为白色背景false为灰色背景
*/
publicstaticBuildBean showMdLoadingVertical(Context context, CharSequence msg, booleancancleable, booleanoutsideTouchable, booleanisWhiteBg)
具体使用
DialogUIUtils.showMdLoadingVertical(this, "加载中...").show();
md风格弹出框
/***
* md风格弹出框 默认可取消可点击
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param msg 消息
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showMdAlert(Activity activity, CharSequence title, CharSequence msg, DialogUIListener listener)
/***
* md风格弹出框
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param msg 消息
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showMdAlert(Activity activity, CharSequence title, CharSequence msg, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)
具体使用
DialogUIUtils.showMdAlert(activity, "标题", "文本内容", newDialogUIListener() {
@Override
publicvoidonPositive() {
}
@Override
publicvoidonNegative() {
}
}).show();
md风格多选框
/**
* md风格多选框 默认可取消可点击
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param words 消息数组
* @param checkedItems 默认选中项
* @param listener 事件监听
*/
publicstaticBuildBean showMdMultiChoose(Activity activity, CharSequence title, CharSequence[] words, boolean[] checkedItems, DialogUIListener listener)
/***
* md风格多选框
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param words 消息数组
* @param checkedItems 默认选中项
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showMdMultiChoose(Activity activity, CharSequence title, CharSequence[] words, boolean[] checkedItems, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)
具体使用
String[] words = newString[]{"1", "2", "3"};
boolean[] choseDefault = newboolean[]{false, false, false};
DialogUIUtils.showMdMultiChoose(activity, "标题", words, choseDefault, newDialogUIListener() {
@Override
publicvoidonPositive() {
}
@Override
publicvoidonNegative() {
}
}).show();
单选框
/**
* 单选框 默认可取消可点击
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param defaultChosen 默认选中项
* @param words 消息数组
* @param listener 事件监听
*/
publicstaticBuildBean showSingleChoose(Activity activity, CharSequence title, intdefaultChosen, CharSequence[] words, DialogUIItemListener listener)
/**
* 单选框
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param defaultChosen 默认选中项
* @param words 消息数组
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
*/
publicstaticBuildBean showSingleChoose(Activity activity, CharSequence title, intdefaultChosen, CharSequence[] words, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)
具体使用
String[] words2 = newString[]{"1", "2", "3"};
DialogUIUtils.showSingleChoose(activity, "单选", 0, words2, newDialogUIItemListener() {
@Override
publicvoidonItemClick(CharSequence text, intposition) {
showToast(text + "--"+ position);
}
}).show();
提示弹出框
/**
* 提示弹出框 默认可取消可点击
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param listener 事件监听
*/
publicstaticBuildBean showAlert(Activity activity, CharSequence title, CharSequence msg, DialogUIListener listener)
/**
* 提示弹出框
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
*/
publicstaticBuildBean showAlert(Activity activity, CharSequence title, CharSequence msg, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)
具体使用
DialogUIUtils.showAlert(activity, "标题", "文本内容", newDialogUIListener() {
@Override
publicvoidonPositive() {
}
@Override
publicvoidonNegative() {
}
}).show();
横向弹出框
/**
* 横向弹出框 默认可取消可点击
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param msg 消息
* @param listener 事件监听
*/
publicstaticBuildBean showAlertHorizontal(Context activity, CharSequence title, CharSequence msg, DialogUIListener listener)
/**
* 横向弹出框
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param msg 消息
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
*/
publicstaticBuildBean showAlertHorizontal(Context activity, CharSequence title, CharSequence msg, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)
具体使用
DialogUIUtils.showAlertHorizontal(activity, "标题", "文本内容", newDialogUIListener() {
@Override
publicvoidonPositive() {
}
@Override
publicvoidonNegative() {
}
}).show();
竖向弹出框
/**
* 竖向弹出框 默认可取消可点击
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param msg 消息
* @param listener 事件监听
*/
publicstaticBuildBean showAlertVertical(Context activity, CharSequence title, CharSequence msg, DialogUIListener listener)
/**
* 竖向弹出框
*
* @param activity 所在activity
* @param title 标题 不传则无标题
* @param msg 消息
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
*/
publicstaticBuildBean showAlertVertical(Context activity, CharSequence title, CharSequence msg, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)
具体使用
DialogUIUtils.showAlertVertical(activity, "标题", "文本内容", newDialogUIListener() {
@Override
publicvoidonPositive() {
}
@Override
publicvoidonNegative() {
}
}).show();
中间弹出列表
/**
* 中间弹出列表 默认可取消可点击
*
* @param context 上下文
* @param words 素组集合
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showCenterSheet(Context context, List words, DialogUIItemListener listener)
/***
* 中间弹出列表
*
* @param context 上下文
* @param words 素组集合
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showCenterSheet(Context context, List words, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)
具体使用
List strings = newArrayList<>();
strings.add("1");
strings.add("2");
strings.add("3");
DialogUIUtils.showCenterSheet(activity, strings, newDialogUIItemListener() {
@Override
publicvoidonItemClick(CharSequence text, intposition) {
}
@Override
publicvoidonBottomBtnClick() {
}
}).show();
带取消的底部弹出列表
/**
* 带取消的底部弹出列表 默认可取消可点击
*
* @param context 上下文
* @param words 素组集合
* @param bottomTxt 底部按钮文本
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showBottomSheetAndCancel(Context context, List words, CharSequence bottomTxt, DialogUIItemListener listener)
/***
* 带取消的底部弹出列表
*
* @param context 上下文
* @param words 素组集合
* @param bottomTxt 底部按钮文本
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showBottomSheetAndCancel(Context context, List words, CharSequence bottomTxt, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)
具体使用
List strings = newArrayList<>();
strings.add("1");
strings.add("2");
strings.add("3");
DialogUIUtils.showBottomSheetAndCancel(activity, strings, "取消", newDialogUIItemListener() {
@Override
publicvoidonItemClick(CharSequence text, intposition) {
}
@Override
publicvoidonBottomBtnClick() {
}
}).show();
底部弹出列表
/**
* 底部弹出列表 默认可取消可点击
*
* @param context 上下文
* @param datas 集合需要BottomSheetBean对象
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showBottomSheet(Activity context, List datas, DialogUIItemListener listener)
/***
* 底部弹出列表
*
* @param context 上下文
* @param datas 集合需要BottomSheetBean对象
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showBottomSheet(Activity context, List datas, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)
具体使用
List datass = newArrayList<>();
datass.add(newBottomSheetBean(0, "1"));
datass.add(newBottomSheetBean(0, "2"));
datass.add(newBottomSheetBean(0, "3"));
DialogUIUtils.showBottomSheet(this, datass, newDialogUIItemListener() {
@Override
publicvoidonItemClick(CharSequence text, intposition) {
}
}).show();
输入框
/**
* 输入框 默认可取消可点击
*
* @param context 上下文
* @param title 标题
* @param hint1 第一个文本框提示语
* @param hint2 第二个文本框提示语
* @param firstTxt 第一个按钮文本
* @param secondTxt 第二个按钮文本
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showAlertInput(Context context, CharSequence title, CharSequence hint1, CharSequence hint2, CharSequence firstTxt, CharSequence secondTxt, DialogUIListener listener)
/***
* 输入框
*
* @param context 上下文
* @param title 标题
* @param hint1 第一个文本框提示语
* @param hint2 第二个文本框提示语
* @param firstTxt 第一个按钮文本
* @param secondTxt 第二个按钮文本
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showAlertInput(Context context, CharSequence title, CharSequence hint1, CharSequence hint2, CharSequence firstTxt, CharSequence secondTxt, booleancancleable, booleanoutsideTouchable, DialogUIListener listener)
具体使用
DialogUIUtils.showAlertInput(activity, "登录", "请输入用户名", "请输入密码", "登录", "取消", newDialogUIListener() {
@Override
publicvoidonPositive() {
}
@Override
publicvoidonNegative() {
}
@Override
publicvoidonGetInput(CharSequence input1, CharSequence input2) {
}
}).show();
md风格竖向底部弹出列表
/**
* md风格竖向底部弹出列表 默认可取消可点击
*
* @param context 上下文
* @param title 标题
* @param datas 集合需要BottomSheetBean对象
* @param bottomTxt 底部item文本
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showMdBottomSheetVertical(Context context, CharSequence title, List datas, CharSequence bottomTxt, DialogUIItemListener listener)
/***
* md风格竖向底部弹出列表
*
* @param context 上下文
* @param title 标题
* @param datas 集合需要BottomSheetBean对象
* @param bottomTxt 底部item文本
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showMdBottomSheetVertical(Context context, CharSequence title, List datas, CharSequence bottomTxt, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)
具体使用
List datass = newArrayList<>();
datass.add(newBottomSheetBean(0, "1"));
datass.add(newBottomSheetBean(0, "2"));
datass.add(newBottomSheetBean(0, "3"));
DialogUIUtils.showMdBottomSheetVertical(this, datass, newDialogUIItemListener() {
@Override
publicvoidonItemClick(CharSequence text, intposition) {
}
}).show();
md风格横向底部弹出列表
/**
* md风格横向底部弹出列表 默认可取消可点击
*
* @param context 上下文
* @param title 标题
* @param datas 集合需要BottomSheetBean对象
* @param bottomTxt 底部item文本
* @param columnsNum 列数量
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showMdBottomSheetHorizontal(Context context, CharSequence title, List datas, CharSequence bottomTxt, intcolumnsNum, DialogUIItemListener listener)
/***
* md风格横向底部弹出列表
*
* @param context 上下文
* @param title 标题
* @param datas 集合需要BottomSheetBean对象
* @param bottomTxt 底部item文本
* @param columnsNum 列数量
* @param cancleable true为可以取消false为不可取消
* @param outsideTouchable true为可以点击空白区域false为不可点击
* @param listener 事件监听
* @return
*/
publicstaticBuildBean showMdBottomSheetHorizontal(Context context, CharSequence title, List datas, CharSequence bottomTxt, intcolumnsNum, booleancancleable, booleanoutsideTouchable, DialogUIItemListener listener)
具体使用
List datass = newArrayList<>();
datass.add(newBottomSheetBean(0, "1"));
datass.add(newBottomSheetBean(0, "2"));
datass.add(newBottomSheetBean(0, "3"));
DialogUIUtils.showMdBottomSheetHorizontal(this, datass, newDialogUIItemListener() {
@Override
publicvoidonItemClick(CharSequence text, intposition) {
}
}).show();