Gradle:
// add it in repositories
maven { url 'http://xcserver:8082/nexus/content/repositories/releases/' }
// add it in dependencies
compile "com.ecarx:tip:1.6.3"
showShort: 显示短时吐司
showLong : 显示长时吐司
cancel : 取消吐司显示
createLoading : 创建加载框
createMessage : 创建消息对话框
createSelectItems : 创建选项对话框
createSelectButtons: 创建选按钮对话框
首先在你的 Application.class
中初始化 XCTip
,具体如下所示
// init it in ur class of Application
XCTip.init(this);
然后配置换肤主题颜色属性,不同皮肤不同色哈。
<!-- XCDialog -->
<color name="ecarx_theme_main_color_pressed">#80007AFF</color>
<color name="ecarx_theme_main_color">#FF007AFF</color>
如果要自定义 Toast
的话,可模仿 XCToast
的实现的方式,继承 ToastUtils
来传入自定义布局,由于 Toast
使用比较简单,根据 API 即可使用,不做过多介绍。
因为使用的是 DialogFragment
,所以大家使用的 Activity
都应该是 FragmentActivity
的子类,由于初始化的时候我监听了 Activity
的生命周期,所以调用的时候无需传入相关的上下文来显示 Dialog
,如果整个应用没有 Activity
,那么需要创建一个继承于 FragmentActivity
的透明 Activity
,在其中显示你需要显示的 Dialog
,然后调用 startActivity
来间接显示 Dialog
即可,下面分别介绍四种对话框的使用。
public void showLoading(View view) {
if (loadingDialog == null) {
loadingDialog = DialogFactory.createLoading(new LoadingDialog.Config(true)
.setCanceledOnTouchOutside(false)
.setLoadingMessage("loading......"));
}
loadingDialog.show();
}
具体如下图所示。
public void showLoading(View view) {
if (loadingDialog == null) {
loadingDialog = DialogFactory.createLoading(new LoadingDialog.Config(false)
.setCanceledOnTouchOutside(false)
.setLoadingMessage("loading......"));
}
loadingDialog.show();
}
具体如下图所示。
public void showMessage(View view) {
if (messageDialog == null) {
messageDialog = DialogFactory.createMessage(new MessageDialog.Config()
.setCanceledOnTouchOutside(false)
.setMessage("这里展示的是消息,这里展示的是消息,这里展示的是消息")
.setLeftButton("确定", new OnClickListener() {
@Override
public void onClick(Dialog dialog, View view) {
XCToast.showLong("点了确定");
dialog.dismiss();
}
})
.setRightButton("取消", new OnClickListener() {
@Override
public void onClick(Dialog dialog, View view) {
XCToast.showLong("点了取消");
dialog.dismiss();
}
}));
}
messageDialog.show();
}
具体如下图所示。
public void showSelectItems(View view) {
if (selectItemsDialog == null) {
selectItemsDialog = DialogFactory.createSelectItems(new SelectItemsDialog.Config()
.setCanceledOnTouchOutside(false)
.setTitle("标题")
.setSelectItems(new String[]{"列表名称", "列表名称", "列表名称", "列表名称"}, 2,
new OnSelectListener() {
@Override
public void onSelect(Dialog dialog, int index) {
XCToast.showLong(String.valueOf(index));
// dialog.dismiss();
}
})
.setLeftButton("取消", new OnClickListener() {
@Override
public void onClick(Dialog dialog, View view) {
XCToast.showLong("点了取消");
dialog.dismiss();
}
}));
}
selectItemsDialog.show();
}
具体如下图所示。
public void showSelectButtons(View view) {
if (selectButtonsDialog == null) {
selectButtonsDialog = DialogFactory.createSelectButtons(new SelectButtonsDialog.Config()
.setCanceledOnTouchOutside(false)
.setTitle("标题")
.setSelectButtons("这里展示的是消息,这里展示的是消息,这里展示的是消息",
new String[]{"选项", "选项", "选项"},
new OnSelectListener() {
@Override
public void onSelect(Dialog dialog, int index) {
XCToast.showLong(String.valueOf(index));
// dialog.dismiss();
}
})
.setLeftButton("取消", new OnClickListener() {
@Override
public void onClick(Dialog dialog, View view) {
XCToast.showLong("点了取消");
dialog.dismiss();
}
}));
}
selectButtonsDialog.show();
}
具体如下图所示。
项目中使用到的 Dialog
如上已包括,后面讲解的 Config
为选看。
Demo的话可以参看 XCCommon
中 app
下的 tip
模块。
以上四种 Dialog
创建都需要传入各自的 Conifg
,其Config都继承于 BaseDialog.BaseConifg
,相关 API 如下所示。
API of BaseDialog.BaseConfig
setSize : 设置Dialog尺寸
setWidth : 设置Dialog宽度
setHeight : 设置Dialog高度
setGravity : 设置Dialog位置
setAlpha : 设置Dialog透明度
setBg : 设置Dialog背景
setBgRes : 设置Dialog背景资源
setCanceled : 设置点击取消是否可以关闭Dialog
setCanceledOnTouchOutside: 设置点击Dialog外围是否可以关闭Dialog
setOnCancelListener : 设置取消回调事件
除了 LoadingDialog
,带有标题和底部按钮的都继承自 BaseContentDialog
,它的 Config
如下所示。
API of BaseContentDialog.Config
setTitle : 设置标题
setLeftButton : 设置左按钮
setRightButton: 设置右按钮
如果底部只需要一个按钮,那么只需从 setLeftButton
和 setRightButton
任选其一即可。
完结 撒花
- 1.6.3: 新增 Toast 和 Dialog 弹出时加入属于什么应用的日志,tag 为 XCTip 即可过滤(18/01/16)
- 1.6.2: 修复 SDK 18 ToastUtils 连续显示崩溃的问题(18/01/08)
- 1.6.1: 修复 LoadingDialog 跳转 Activity 时 dismiss 崩溃错误
- 1.6.0: 分离 2.0 相关的东西
- 1.5.1: 修复 LoadingDialog 的最少显示时长
- 1.5.0: 修复 LoadingDialog 的内存泄露
- 1.4.1: 修复 MessageDialog2 圆角和 onCancel
- 1.4.0: 连续点击崩溃的 Bug 已消除,新增 2.0 样式的 Dialog 和 Toast
- 1.3.1: 新增返回键事件
- 1.2.1: Dialog 适配换肤主题
- 1.2.0: Loading Dialog 增加适配
- 1.1.0: 修复 toast 弱引用为空,修复 dialog 从桌面回来崩溃的问题,新增横向加载对话框
- 1.0.0: 新增 toast 及四种类型 dialog
me me da