大家好,今天给大家介绍Xamarin.Forms底下调用吐司。
所谓的吐司,就是Toast,安卓底下有自带的吐司Toast,就是给用户提示信息,并且过一段时间后会自动消失。但自带的吐司有些简陋,今天我们要讲的是引用第三方库,下面具体介绍:
1.分平台底下下载程序包:
1.1 安卓平台:
1.2 iOS平台:
2.在可移植平台底下创建接口:
public interface iHUD//吐司接口
{
void Show_Status_Message(string StatusMessage);//显示正在加载状态
void Show_success(string Message);//显示成功
void Show_Error(string Message);//显示错误
void Show_Toast(string Message);//显示自定义吐司
void Show_Dismiss();//显示取消,和Status_Message配套使用
}
3.分平台底下实现接口:
3.1 安卓平台:
using AndroidHUD;
[assembly:Xamarin.Forms.Dependency(typeof(UIApp.Droid.AndroidHUD))]
namespace UIApp.Droid
{
public class AndroidHUD : iHUD
{
/// <summary>
/// 关闭
/// </summary>
public void Show_Dismiss()
{
AndHUD.Shared.Dismiss();
}
/// <summary>
/// 显示一个错误图像与一个模糊的背景的消息,并自动排除后2秒
/// </summary>
/// <param name="Message"></param>
public void Show_Error(string Message)
{
AndHUD.Shared.ShowError(Forms.Context,Message,MaskType.Clear, TimeSpan.FromSeconds(2));
}
/// <summary>
/// 显示旋转 + 文本
/// </summary>
/// <param name="StatusMessage"></param>
public void Show_Status_Message(string StatusMessage)
{
AndHUD.Shared.Show(Forms.Context,StatusMessage,-1,MaskType.Clear);
}
/// <summary>
/// 一个成功的图像显示一个消息,有一个明确的背景,并自动排除后2秒
/// </summary>
/// <param name="Message"></param>
public void Show_success(string Message)
{
AndHUD.Shared.ShowSuccess(Forms.Context, Message, MaskType.Clear, TimeSpan.FromSeconds(2));
}
/// <summary>
/// 显示一个安卓风格的吐司
/// </summary>
/// <param name="Message"></param>
public void Show_Toast(string Message)
{
AndHUD.Shared.ShowToast(Forms.Context, Message, MaskType.Clear, TimeSpan.FromSeconds(2));
}
}
}
3.2 iOS平台
using BigTed;
[assembly:Xamarin.Forms.Dependency(typeof(UIApp.iOS.iOSHUD))]
namespace UIApp.iOS
{
public class iOSHUD : iHUD
{
public void Show_Dismiss()
{
BTProgressHUD.Dismiss();
}
public void Show_Error(string Message)
{
BTProgressHUD.ForceiOS6LookAndFeel = true;
BTProgressHUD.ShowErrorWithStatus(Message,2000);
}
public void Show_Status_Message(string StatusMessage)
{
BTProgressHUD.ForceiOS6LookAndFeel = true;
BTProgressHUD.ShowSuccessWithStatus(StatusMessage);
}
public void Show_success(string Message)
{
BTProgressHUD.ForceiOS6LookAndFeel = true;
BTProgressHUD.ShowSuccessWithStatus(Message,2000);
}
public void Show_Toast(string Message)
{
BTProgressHUD.ForceiOS6LookAndFeel = true;
BTProgressHUD.ShowErrorWithStatus(Message,2000);
}
}
}
接口实现里面可以调节吐司提示存在的时间,这里设置成2秒,需要注意的是,这里的吐司提示会占用你2秒的时间,也就是说,在提示的这两秒内,你对应用的操作都是无效的(比如点击屏幕,按物理返回键啥的都没用)。
4. 可移植平台底下调用:
iHUD hud = DependencyService.Get<iHUD>();
hud.Show_success("成功!");
hud.Show_Error("失败!");
hud.Show_Status_Message("正在加载,请稍后......");
hud.Show_Dismiss();
这里要注意的是Show_Status_Message()和Show_Dismiss()要配套使用,一个是提示加载,等到加载完后调用Show_Dissmiss(),不然StatusMessage的提示会一直在。