回复
【全网首发】鸿蒙开源三方组件 -- 对话弹窗工具DialogUtil组件 原创 精华
wx610273f694f1c
发布于 2021-7-29 17:52
浏览
4收藏
前言
material风格,ios风格,自动获取顶层ability,可在任意界面弹出,可在任意线程弹出。
基于安卓平台的DialogUtil组件(https://github.com/hss01248/DialogUtil)
实现了鸿蒙化,代码已经开源到(https://gitee.com/openneusoft/dialog-util)
欢迎各位下载使用并提出宝贵意见!。
特性
- 安全,任意线程均可调用。
- 类型丰富,包括常用的ios风格dialog和material design风格的dialog,且按钮和文字样式可便捷地修改。
- 自定义view:可以传入自定义的view,定义好事件,本工具负责安全地显示。
- 也可以保留iso样式或material 样式的底部按钮和上方title(可隐藏),中间的view可以完全自定义。
- 也可以设置宽高百分比来自定义宽高。
- 可以关闭默认的阴影背景,从而能使用xml中自定义的背景(弹出自定义view的dialog时常用)。
- ios样式和material 样式的均可以在三种状态下显示: 普通dialog,TYPE_TOAST。
- 支持带x的广告样式的动画。
组件示例效果
集成方式
方式一:
通过library生成har包,添加har包到libs文件夹内。
在entry的gradle内添加如下代码:
implementation fileTree(dir:'libs', include:['*.jar','*.har'])
方式二:
allprojects{
repositories{
mavenCentral()
}
}
implementation 'io.github.dzsf:DialogUtil:1.0.0'
如何使用
初始化
//在Ability的onStart方法里:
传入context
StyledDialog.init(this);
示例代码(MainAbilitySlice里)
//使用默认样式时,无须.setxxx:
StyledDialog.buildLoading().show();
//自定义部分样式时:
StyledDialog.buildMdAlert("title", msg, new MyDialogListener() {
@Override
public void onFirst() {
showToast("onFirst");
}
@Override
public void onSecond() {
showToast("onSecond");
}
@Override
public void onThird() {
showToast("onThird");
}
})
.setBtnSize(20)
.setBtnText("i","b","3")
.show();
相关回调 MyDialogListener
public abstract void onFirst();//md-确定,ios-第一个
public abstract void onSecond();//md-取消,ios-第二个
public void onThird(){}//md-netural,ios-第三个
public void onCancle(){}
/**
* 提供给Input的回调
* @param input1
* @param input2
*/
public void onGetInput(CharSequence input1,CharSequence input2){
}
/**
* 提供给MdSingleChoose的回调
* @param chosen
* @param chosenTxt
*/
public void onGetChoose(int chosen,CharSequence chosenTxt){
}
/**
* 提供给MdMultiChoose的回调
* @param states
*/
public void onChoosen( List<Integer> selectedIndex, List<CharSequence> selectedStrs,boolean[] states){
}
MyItemDialogListener
/**
* IosSingleChoose,BottomItemDialog的点击条目回调
* @param text
* @param position
*/
public abstract void onItemClick(CharSequence text, int position);
/**
* BottomItemDialog的底部按钮(经常是取消)的点击回调
*/
public void onBottomBtnClick(){}
最后必须调用show(),返回dialog对象
progress dialog 的进度更新
/**
* 可以在任何线程调用
* @param dialog 传入show方法返回的对象
* @param progress
* @param max
* @param msg 如果是转圈圈,会将msg变成msg:78%的形式.如果是水平,msg不起作用
* @param isHorizontal 是水平线状,还是转圈圈
*/
public static void updateProgress( Dialog dialog, int progress, int max, CharSequence msg, boolean isHorizontal)
附录1:相关资料
IDE官方下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
赞
4
收藏 4
回复
相关推荐