xamarin - 在 xamarin 表单中使用 Rg.Plugins.Popup 时出现异常
问题描述
我在弹出窗口中填充了一个列表视图。我使用的是 1.0.4 版本的
Rg.plugins.popup.
在选择列表项时,我在打电话
PopupNavigation.PopAsync(true);
关闭弹出窗口。
但有时我会遇到崩溃:
Android.Runtime.JavaProxyThrowable: Exception of type 'Android.Runtime.JavaProxyThrowable' was thrown. --- End of managed Android.Runtime.JavaProxyThrowable stack trace --- android.runtime.JavaProxyThrowable: System.IndexOutOfRangeException: There is not page in PopupStack at Rg.Plugins.Popup.Services.PopupNavigation.PopAsync (System.Boolean animate) [0x0000c] in :0 at TCRMobile.ViewModels.TicketsListGenericViewModel.OpenTicketTabsPage (TCRMobile.DataObjects.Ticket selectedTicket, System.Int32 mobileID, System.Nullable`1[T] laborMiscTimeMobileID) [0x00000] in :0 at TCRMobile.ViewModels.TicketsListGenericViewModel+<>c__DisplayClass13_0.b__0 () [0x00055] in :0 at TCRMobile.Droid.Services.DialogService+<>c__DisplayClass5_0.b__1 (System.Object sender, Android.Content.DialogClickEventArgs e) [0x0001d] in <5c6ae91b284846f5995b4e735df62b69>:0 at Android.Content.IDialogInterfaceOnClickListenerImplementor.OnClick (Android.Content.IDialogInterface dialog, System.Int32 which) [0x00012] in <1ccf2ea9504d42c08b47c05ee0c5e9f7>:0 at Android.Content.IDialogInterfaceOnClickListenerInvoker.n_OnClick_Landroid_content_DialogInterface_I (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_dialog, System.Int32 which) [0x0000f] in <1ccf2ea9504d42c08b47c05ee0c5e9f7>:0 at (wrapper dynamic-method) System.Object:d515a9d0-d793-4191-a5c6-5e450c1fd743 (intptr,intptr,intptr,int) at mono.android.content.DialogInterface_OnClickListenerImplementor.n_onClick(Native Method) at mono.android.content.DialogInterface_OnClickListenerImplementor.onClick(DialogInterface_OnClickListenerImplementor.java:30) at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:175) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6682) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1534) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1424)
我认为崩溃是因为我的一些用户双击列表项。在调用之前我是否需要始终检查弹出堆栈计数
popasync(true).
如果更新上面的弹出库可以解决这个问题?
请解释崩溃的原因和解决方案。
谢谢
解决方案
可能这不会是一个明智的解决方案。
叫它
await PopUpService.PopUpAll();
服务
public static class PopUpService
{
public static async Task PopUpAll()
{
if (Rg.Plugins.Popup.Services.PopupNavigation.Instance.PopupStack.Any())
{
await Rg.Plugins.Popup.Services.PopupNavigation.Instance.PopAllAsync();
}
}
}
推荐阅读
- html - Display data in HTML table with multi level grouping
- sql - Find rows in a table that matches by a table valued list
- javascript - How can I optimize my validation code in reactjs?
- arrays - Access Go's array of arrays from C
- android - 无法从资产目录安装 apk
- android - Unable to add android project - ionic( Error - com.couchbase.lite.phonegap)
- content-management-system - 如何在 Directus 7 中创建页面扩展
- forms - 如何从 symfony 的 api 控制器中的表单中检索数据
- javascript - D3.js 条件附加取决于对象的类型
- google-maps - 在 Google 地图中,地理编码 API 响应获取到许多地址组件。必须用哪一个?