步驟來重現問題:Xamarin形成選取器控件的問題(機器人,程序兼容性)
- 創建空白XF應用程序,應用應用程序兼容性和材質設計以下this指導
- 選取器控件添加到主頁面的一些項目(無論什麼)
- 啓動應用程序(在設備5.0和仿真器4.4上測試),嘗試快速雙擊選擇器EditText字段 - 它會導致打開兩個AlertDialog(或其他)與選擇器元素進行選擇。當你選擇一些元素或觸摸取消按鈕頂部對話框消除並顯示底層(我們點擊兩次,如果我們足夠快 - 有兩個對話框)。選擇任何項目或取消,我們得到的NullReferenceException第二個對話框按鈕(發件人 - AlertDialog, 「這個」 Xamarin.Forms.Platform.Android.AppCompat.PickerRenderer),堆棧跟蹤這裏:
在 Xamarin.Forms .Platform.Android.AppCompat.PickerRenderer.b__9_2 (System.Object sender,System.EventArgs args)[0x00000] in C:\ BuildAgent2 \ work \ aad494dc9bc9783 \ Xamarin.Forms.Platform.Android \ AppCompat \ PickerRenderer.cs: 110 at Android.Content.IDialogInterfaceOnDismissListenerImplementor.OnDismiss (IDialogInterface對話框)[0x0000d] /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] in /Users/builder/data/lanes/3415/7db2aac3/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android。 Content.IDialogInterface.cs:334 在(包裝紙動態方法) System.Object的:b6f021d2-c6e1-4672-9b03-e892d275f304 (IntPtr的,IntPtr的,IntPtr的)
沒有appcompat我不能重現它,至少我不能得到兩個對話框顯示。 似乎通過選擇第二個對話框上的值,我們試圖從解散的一個訪問somethig並獲得異常。任何建議如何解決這個問題?
你可以上傳這個的複製品,或者可能是[bug](https://bugzilla.xamarin.com/)?我並沒有像你描述的那樣把最新的穩定問題解決,但我可能在這裏做錯了什麼。只是有助於有你的背景。 – Paul
這個問題在這裏描述:https://bugzilla.xamarin.com/show_bug.cgi?id=41717附帶複製項目。 – Anton
將錯誤狀態設置爲已確認,因此在修復之前,我們要使用完全自定義的渲染器,或者僅將Picker渲染器基類更改爲原始(非compat)PickerRenderer。順便說一句,原始選擇器對話框(也稱爲DatePicker)也可以打開兩次,但這不會導致錯誤。 – Anton