Пример #1
0
        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);
            });
        }
Пример #2
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"));
        }