愿你出走半生,归来仍是少年!
环境:.NET 7、MAUI
在Maui开发中使用的Toast太丑了,在android项目中使用时不够看。通过Maui的安卓绑定库可实现将android中已有的包导入到C#项目中使用,借助这个方法就可以使用以前在android原生开发中的包了。
1.新建Android Java库项目
在VS中新建项目,选择"Android 绑定库(Xamarin)"类别的项目,进行创建。
新建项目
2.导入JAVA包
将准备好的aar包拷贝至项目的Jars文件夹下,并将其 生成操作设定为"LibraryProjectZip",然后将项目进行生成。
导入aar包
生成
3.简单封装
由于是通过Java导入进来的,所以它的包名会变为命名空间,太长了,进行简单的封装,就成为可在MAUI框架下面向android平台使用的通用包了。
cs
namespace AndroidLib
{
/// <summary>
/// 信息提示
/// </summary>
public static class Toasty
{
/// <summary>
/// 成功提示
/// </summary>
/// <param name="msg">信息</param>
/// <param name="isShort">显示时长</param>
public static void Success(string msg, bool isShort=true)
{
ES.Dmoral.Toasty.Toasty.Success(Android.App.Application.Context, msg, isShort ? 0 : 1).Show();
}
/// <summary>
/// 错误提示
/// </summary>
/// <param name="msg">信息</param>
/// <param name="isShort">显示时长</param>
public static void Error(string msg, bool isShort = true)
{
ES.Dmoral.Toasty.Toasty.Error(Android.App.Application.Context, msg, isShort ? 0 : 1).Show();
}
/// <summary>
/// 警告提示
/// </summary>
/// <param name="msg">信息</param>
/// <param name="isShort">显示时长</param>
public static void Warning(string msg, bool isShort = true)
{
ES.Dmoral.Toasty.Toasty.Warning(Android.App.Application.Context, msg, isShort ? 0 : 1).Show();
}
/// <summary>
/// 信息提示
/// </summary>
/// <param name="msg">信息</param>
/// <param name="isShort">显示时长</param>
public static void Info(string msg, bool isShort = true)
{
ES.Dmoral.Toasty.Toasty.Info(Android.App.Application.Context, msg, isShort ? 0 : 1).Show();
}
/// <summary>
/// 常规提示
/// </summary>
/// <param name="msg">信息</param>
/// <param name="isShort">显示时长</param>
public static void Normal(string msg, bool isShort = true)
{
ES.Dmoral.Toasty.Toasty.Normal(Android.App.Application.Context, msg, isShort ? 0 : 1).Show();
}
}
}
4.使用
主项目程序引用刚才的绑定库项目,并调用上述的封装的类即可使用。
cs
private void btn1_Clicked(object sender, EventArgs e)
{
Toasty.Normal("普通信息!");
}
private void btn2_Clicked(object sender, EventArgs e)
{
Toasty.Warning("警告信息!");
}
private void btn3_Clicked(object sender, EventArgs e)
{
Toasty.Success("成功信息!");
}
private void btn4_Clicked(object sender, EventArgs e)
{
Toasty.Error("错误信息!");
}
private void btn5_Clicked(object sender, EventArgs e)
{
Toasty.Info("提示信息!");
}
5.效果
可以看出来,这个确实是比MAUI的好看啊!!!
使用效果