【发布时间】:2016-11-16 05:05:20
【问题描述】:
重现问题的步骤:
- 创建空白 XF 应用,按照this 指南应用应用兼容性和材料设计
- 将 Picker 控件添加到带有一些项目的主页(无所谓)
- 启动应用程序(在设备 5.0 和模拟器 4.4 上测试),尝试快速双击选择器 EditText 字段 - 它会导致打开两个带有选择器元素的 AlertDialog(或其他)。当您选择某些元素或触摸取消按钮时,顶部对话框会关闭并显示底层(我们点击了两次,如果我们足够快 - 有两个对话框)。在第二个对话框中选择任何项目或取消按钮,我们会得到 NullReferenceException(sender - AlertDialog,“this”Xamarin.Forms.Platform.Android.AppCompat.PickerRenderer),此处的堆栈跟踪:
在 Xamarin.Forms.Platform.Android.AppCompat.PickerRenderer.b__9_2 (System.Object 发送者,System.EventArgs args)[0x00000] 在 C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\AppCompat\PickerRenderer.cs:110 在 Android.Content.IDialogInterfaceOnDismissListenerImplementor.OnDismiss (IDialogInterface 对话框) [0x0000d] in /Users/builder/data/lanes/3415/7db2aac3/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.Content.IDialogInterface.cs:369 在 Android.Content.IDialogInterfaceOnDismissListenerInvoker.n_OnDismiss_Landroid_content_DialogInterface_ (IntPtr jnienv, IntPtr native__this, IntPtr native_dialog) [0x00011] 在 /Users/builder/data/lanes/3415/7db2aac3/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.Content.IDialogInterface.cs:334 在(包装动态方法) 系统对象:b6f021d2-c6e1-4672-9b03-e892d275f304 (intptr,intptr,intptr)
没有 appcompat 我无法重现它,至少我无法显示两个对话框。 似乎通过在第二个对话框中选择值,我们正试图从被解雇的对话框中访问某些东西并获得异常。有什么建议可以解决这个问题吗?
【问题讨论】:
-
你能上传这个的复制品还是归档bug?正如你所描述的那样,我没有遇到最新稳定的问题,但我可能做错了什么,在这里。只是有助于了解您的上下文。
-
此问题在此处描述:bugzilla.xamarin.com/show_bug.cgi?id=41717 附带复制项目。
-
Bug 状态设置为已确认,因此在修复之前我们将使用完全自定义的渲染器,或者只是将 Picker 渲染器基类更改为原始(非兼容)PickerRenderer。顺便说一句,原来的选择器对话框(也像 DatePicker 一样)也可以打开两次,但这不会导致错误。
标签: xamarin.android xamarin.forms