public async Task FlyoutItemsRendererWhenFlyoutBehaviorStartsAsLocked() { SetupBuilder(); var shell = await CreateShellAsync(shell => { shell.CurrentItem = new FlyoutItem() { Items = { new ContentPage() }, Title = "Flyout Item" }; shell.FlyoutBehavior = FlyoutBehavior.Locked; }); await CreateHandlerAndAddToWindow <ShellRenderer>(shell, async (handler) => { await Task.Delay(1000); IShellContext shellContext = handler; DrawerLayout dl = shellContext.CurrentDrawerLayout; var flyout = dl.GetChildAt(0); RecyclerViewContainer flyoutContainer = null; if (dl.GetChildAt(1) is ViewGroup vg1 && vg1.GetChildAt(0) is RecyclerViewContainer rvc) { flyoutContainer = rvc; } _ = flyoutContainer ?? throw new Exception("Unable to locate RecyclerViewContainer"); Assert.True(flyoutContainer.MeasuredWidth > 0); Assert.True(flyoutContainer.MeasuredHeight > 0); }); }
RecyclerViewContainer GetFlyoutMenuReyclerView(ShellRenderer shellRenderer) { IShellContext shellContext = shellRenderer; DrawerLayout dl = shellContext.CurrentDrawerLayout; var flyout = dl.GetChildAt(0); RecyclerViewContainer flyoutContainer = null; if (dl.GetChildAt(1) is ViewGroup vg1 && vg1.GetChildAt(0) is RecyclerViewContainer rvc) { flyoutContainer = rvc; } return(flyoutContainer ?? throw new Exception("RecyclerView not found")); }