Son*_*ali 3 toast xamarin.ios xamarin.android xamarin
您好,我正在使用 PCL 项目以 xamarin 形式创建一个应用程序。我想仅针对 android 和 ios 在两次后按时实现 Toast 通知。对于安卓我尝试过 -
long doublePressInterval_ms = 300;
DateTime lastPressTime = DateTime.MinValue;
DateTime pressTime = DateTime.Now;
if ((pressTime - lastPressTime).TotalMilliseconds <= doublePressInterval_ms)
{
if(Device.OS == TargetPlatform.Android)
{
Java.Lang.JavaSystem.Exit(0);
}
}
else
{
Android.Widget.Toast.MakeText(this, string_name, ToastLength.Long).Show();
}
lastPressTime = pressTime;
return false;
Run Code Online (Sandbox Code Playgroud)
但它显示错误无法将页面转换为 Android 上下文。如何在我的 pcl 项目中获取 adnroid 上下文?
我尝试了Xamarin 的 Toast 通知插件,但它说 .Net 版本不兼容。
在 Xamarin Android 中,您可以像往常一样显示
Toast.MakeText(this,"toast message", ToastLength.Long).Show();
Run Code Online (Sandbox Code Playgroud)
在 Xamarin iOS 中,您必须使用自定义设计的带有动画的 UIView 才能达到相同的效果
public void ShowToast(String message, UIView view)
{
UIView residualView = view.ViewWithTag(1989);
if (residualView != null)
residualView.RemoveFromSuperview();
var viewBack = new UIView(new CoreGraphics.CGRect(83, 0, 300, 100));
viewBack.BackgroundColor = UIColor.Black;
viewBack.Tag = 1989;
UILabel lblMsg = new UILabel(new CoreGraphics.CGRect(0, 20, 300, 60));
lblMsg.Lines = 2;
lblMsg.Text = message;
lblMsg.TextColor = UIColor.White;
lblMsg.TextAlignment = UITextAlignment.Center;
viewBack.Center = view.Center;
viewBack.AddSubview(lblMsg);
view.AddSubview(viewBack);
roundtheCorner(viewBack);
UIView.BeginAnimations("Toast");
UIView.SetAnimationDuration(3.0f);
viewBack.Alpha = 0.0f;
UIView.CommitAnimations();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7196 次 |
| 最近记录: |