在 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 再走呗

Xamarin.Forms之UserDialogs 重制版本的更多相关文章

  1. Xamarin.Forms 3.0的新特性

    近期因为工作关系开始使用Xamarin,翻译了两篇国外的介绍3.0新特性的文章,供大家参考. 第一篇文章来自Xamarin官网,原文地址:https://blog.xamarin.com/xamari ...

  2. 从零开始学Xamarin.Forms(一) 概述

    原文:从零开始学Xamarin.Forms(一) 概述     Xamarin 读 "ˈzæmərin",是一个基于开源项目mono的能够使用C#开发的收费的跨平台(iOS.And ...

  3. Xamarin.Forms 简介

    An Introduction to Xamarin.Forms 来源:http://developer.xamarin.com/guides/cross-platform/xamarin-forms ...

  4. 老司机学新平台 - Xamarin Forms开发框架之MvvmCross插件精选

    在前两篇老司机学Xamarin系列中,简单介绍了Xamarin开发环境的搭建以及Prism和MvvmCross这两个开发框架.不同的框架,往往不仅仅使用不同的架构风格,同时社区活跃度不同,各种功能模块 ...

  5. 老司机学新平台 - Xamarin Forms开发框架二探 (Prism vs MvvmCross)

    在上一篇Xamarin开发环境及开发框架初探中,曾简单提到MvvmCross这个Xamarin下的开发框架.最近又评估了一些别的,发现老牌Mvvm框架Prism现在也支持Xamarin Forms了, ...

  6. 为 Xamarin.Forms 做个跑马灯控件

    前段时间,私下用 Xamarin.Forms 做了个商业项目的演示版.很多被国内App玩坏了的控件/效果,XF上都没有或是找不到对应的实现,没有办法只能亲自上阵写了几个,效果还行,就是有BUG. 这个 ...

  7. Xamarin.Forms介绍

    On May 28, 2014, Xamarin introduced Xamarin.Forms, which allows you to write user-interface code tha ...

  8. Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面

    Xamarin.Forms 是一个跨平台的.基于原生控件的UI工具包,开发人员可以轻松的创建适用于 Android,iOS 以及 Windows Phone的用户界面.Xamarin.Forms 通过 ...

  9. 演练:使用Xamarin.Forms开发产品介绍性质的应用(VB版)

    概述 Xamarin这个使用mono和.net core的跨平台开发框架这几年在不断发展.被微软收购后的Xamarin为个人开发者提供了免费版的Xamarin for Visual Studio,吸引 ...

随机推荐

  1. java代码---继承-子类使用继承父类的属性。理解测试

    总结:对于继承.如果父类有的成员变量而子类没有,那么子类的成员变量赋值是来自于父类的,当在子类构造方法赋值时,它和父类的成员变量值是一样的 当成员变量在父类和子类中都存在时,父类用父类的属性,子类用子 ...

  2. mongdb与mysql的联系和区别

    与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值. ...

  3. cocoa 线程操作

    在Cocoa 中创建线程使用NSThread类的detachNewThreadSelector: toTarget:withObject:方法 NSPort *port1 = [NSPort port ...

  4. C#泛型参数多线程与复杂参数多线程

    背景:最近用多线程用的比较多自己走了一些弯路,分享出来希望大家少走弯路,C#中的多线程有两个重载,一个是不带参数的,一个是带参数的,但是即便是带参数的多线程也不支持泛型,这使得使用泛型参数多线程的时候 ...

  5. PCA主成分分析 ICA独立成分分析 LDA线性判别分析 SVD性质

    机器学习(8) -- 降维 核心思想:将数据沿方差最大方向投影,数据更易于区分 简而言之:PCA算法其表现形式是降维,同时也是一种特征融合算法. 对于正交属性空间(对2维空间即为直角坐标系)中的样本点 ...

  6. 前端学习---css基本知识

    css基本知识 我们先看一个小例子: <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  7. Windows + Ubuntu 双系统安装

    前言:本篇文章是对之前文章的更新,更新的主内容是把原来用手机拍摄的图片换成了虚拟机的截图,以及对磁盘划分的新的见解和一些使用感受,原本是打算删除之前的那篇Win + Ubuntu双系统的文章的,后来想 ...

  8. ubuntu12上部署Django1.8.4+uwsgi+nginx超级详细流程配置到云服务器

    环境: 系统:ubuntu12,系统自带默认有python2.7 框架:Django1.8.4,需要python2.7以上才能支持   前言: 用户浏览器发送http请求->nginx(静态文件 ...

  9. ffmpeg设置avformat_open_input( )超时 -stimeout

    ffmpeg用avformat_open_input()解析网络流时,默认是阻塞的. 当遇到解析错误的网络流时,会导致该函数长时间不返回. 为此可以设置ffmpeg的-stimeout 的参数,要注意 ...

  10. Make Cents

    Every year, an elephant qualifies to the Arab Collegiate Programming Competition. He graduated this ...