欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Xamarin.Forms之UserDialogs 重制版本

程序员文章站 2022-04-05 11:29:46
在 forms 里面,目前使用比较多的弹出组件是 Acr.UserDialogs ,但是这个组件有些小问题,比如 loading .hide 会同时把 toast 给一起关掉,android 下的 toast 希望是 安卓原生的toast 样子,而不是 底部弹出一个横条(其实是 android 的 ......

在 forms 里面,目前使用比较多的弹出组件是 acr.userdialogs ,但是这个组件有些小问题,比如 loading .hide 会同时把 toast 给一起关掉,android 下的 toast 希望是 安卓原生的toast 样子,而不是 底部弹出一个横条(其实是 android 的 snackbar),对于 ios 的toast 也希望类似android 的样子,但是 acr.userdialogs 里面 toast 是 snackbar 样式,这并不符合产品需求情况。

 

github地址: https://github.com/jxnkwlp/userdialogs2

 

因此,我重制了一个版本, 包地址:https://www.nuget.org/packages/passingwind.userdialogs/

对 toast 和 snackbar 做了区分,同时 loading 的关闭不会影响 toast 。

 

接口有这些:

目前没有异步接口,因为觉得 acr.userdialogs  的 异步接口和同步接口 对比起来不太好理解。

void toast(string message);

void toast(toastconfig config);

idisposable snackbar(string message, action action = null);

idisposable snackbar(snackbarconfig config);

void alert(string message);

void alert(alertconfig config);

idisposable actionsheet(actionsheetconfig config);

idisposable loading(loadingconfig config);

iprogressdialog progress(progressconfig config);

void prompt(promptconfig config);

void form(promptformconfig config);

 

使用方法:

各个接口 config 都可以先设置默认值,比如 alert 里面 的确定按钮,可以全局设置为 “确定”

alertconfig.defaultoktext = "确定"; 

 

这样设置后,就不用每次使用alert 的时候去设置 确定按钮的文本。

userdialogs.instance.alert(new alertconfig("您当前无权限操作!").addokbutton());

 

相关依赖:

toast:  在android 上是原生的 toast 组件,在ios 上使用 mbprogresshud

snackbar:  在android 上是原生的 snackbar 组件,在ios 上使用 ttgsnackbar

progress,loading  在 android 上使用的是 kprogresshud (https://github.com/jxnkwlp/kprogresshud.csharp) 这个是代码翻译版本,  在 ios 上是使用 mbprogresshud

 

更多说明可以查看 readme 文件 https://github.com/jxnkwlp/userdialogs2

 

最后,觉得好给个star 再走呗