[Bug] Shell error message should be informative when trying to use something other than ContentPage as Tab
#7,346 opened on Sep 1, 2019
Repository metrics
- Stars
- (5,644 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
Description
I need to make the flow below: App - 3 tabs - the second tab is MasterDetailPage with (Dynamic) ListView on MasterPage where every listview item opens a different page on detail side.
Using Xamarin.Forms it was reached by TabbedPage + MasterDetailPage. Using Xamarin Shell I used TabBar element and the same MasterDetailPage, but it's represented by black area on iOS (but processes in the background still work, checked in debug) and crashes on Android with stacktrace:
"Specified cast is not valid." at Xamarin.Forms.Platform.Android.VisualElementExtensions.IsAttachedToRoot (Xamarin.Forms.VisualElement Element) [0x00047] in D:\a\1\s\Xamarin.Forms.Platform.Android\VisualElementExtensions.cs:44 \n at Xamarin.Forms.Platform.Android.AppCompat.MasterDetailContainer.AddChildView (Xamarin.Forms.VisualElement childView) [0x00066] in D:\a\1\s\Xamarin.Forms.Platform.Android\AppCompat\MasterDetailContainer.cs:93 \n at Xamarin.Forms.Platform.Android.MasterDetailContainer.set_ChildView (Xamarin.Forms.VisualElement value) [0x0002e] in D:\a\1\s\Xamarin.Forms.Platform.Android\Renderers\MasterDetailContainer.cs:47 \n at Xamarin.Forms.Platform.Android.AppCompat.MasterDetailPageRenderer.g__Update|79_0 () [0x00022] in D:\a\1\s\Xamarin.Forms.Platform.Android\AppCompat\MasterDetailPageRenderer.cs:410 \n at Xamarin.Forms.Platform.Android.AppCompat.MasterDetailPageRenderer.UpdateDetail () [0x0000d] in D:\a\1\s\Xamarin.Forms.Platform.Android\AppCompat\MasterDetailPageRenderer.cs:399 \n at Xamarin.Forms.Platform.Android.AppCompat.MasterDetailPageRenderer.Xamarin.Forms.Platform.Android.IVisualElementRenderer.SetElement (Xamarin.Forms.VisualElement element) [0x00135] in D:\a\1\s\Xamarin.Forms.Platform.Android\AppCompat\MasterDetailPageRenderer.cs:158 \n at Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement element, Android.Support.V4.App.FragmentManager fragmentManager, Android.Content.Context context) [0x00031] in D:\a\1\s\Xamarin.Forms.Platform.Android\Platform.cs:393 \n at Xamarin.Forms.Platform.Android.AppCompat.FragmentContainer.OnCreateView (Android.Views.LayoutInflater inflater, Android.Views.ViewGroup container, Android.OS.Bundle savedInstanceState) [0x00008] in D:\a\1\s\Xamarin.Forms.Platform.Android\AppCompat\FragmentContainer.cs:56 \n at Xamarin.Forms.Platform.Android.AppCompat.ShellFragmentContainer.OnCreateView (Android.Views.LayoutInflater inflater, Android.Views.ViewGroup container, Android.OS.Bundle savedInstanceState) [0x00011] in D:\a\1\s\Xamarin.Forms.Platform.Android\AppCompat\ShellFragmentContainer.cs:38 \n at Android.Support.V4.App.Fragment.n_OnCreateView_Landroid_view_LayoutInflater_Landroid_view_ViewGroup_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_inflater, System.IntPtr native_container, System.IntPtr native_savedInstanceState) [0x00020] in <21e4bb539f4a49b58a498749b367d2a8>:0 \n at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.39(intptr,intptr,intptr,intptr,intptr)
Steps to Reproduce
- Create Xamarin Shell project
- Organize first level of navigation as TabBar
- Make one of the tabs as MasterDetailPage descendant
- Open this tab on the device
Expected Behavior

Actual Behavior

Basic Information
- Version with issue: 4.2.0.709249
- Last known good version: 3.6.0.344457
- IDE: Visual Studio Community 2019 for Mac Version 8.2.5 (build 5)
- Platform Target Frameworks:
- iOS: 8.0
- Android: 8.1