2

在Shell 导航栏滚动行为的后续工作中,我创建了一个具有滚动行为的自定义 Shell 渲染器工具栏,我想知道是否可以为 Shell 中的 TabBar 或 Tab 创建相同的工具栏。见动图

https://android.jlelse.eu/scroll-your-bottom-navigation-view-away-with-10-lines-of-code-346f1ed40e9e

在此处输入图像描述

 using LP = Android.Views.ViewGroup.LayoutParams;
 public class CustomShell : ShellRenderer
{
    public CustomShell(Context context) : base(context) { }
    protected override IShellToolbarAppearanceTracker CreateToolbarAppearanceTracker()
    {
        base.CreateToolbarAppearanceTracker();
        return new MyShellToolbarAppearanceTracker(this);
    }
}

public class MyShellToolbarAppearanceTracker : ShellToolbarAppearanceTracker
{
    public MyShellToolbarAppearanceTracker(IShellContext shellContext) : base(shellContext)
    {
    }

    public override void SetAppearance(AndroidX.AppCompat.Widget.Toolbar toolbar, IShellToolbarTracker toolbarTracker, ShellAppearance appearance)
    {
        base.SetAppearance(toolbar, toolbarTracker, appearance);

        toolbar.LayoutParameters = new AppBarLayout.LayoutParams(LP.MatchParent, LP.WrapContent)
        {
            ScrollFlags = AppBarLayout.LayoutParams.ScrollFlagScroll |
                          AppBarLayout.LayoutParams.ScrollFlagEnterAlways,
        };
    }
}

AppShell.xaml

 <FlyoutItem Title="Home" 
        FlyoutIcon="{StaticResource FontIconHome}"
        FlyoutDisplayOptions="AsSingleItem">
<Tab Title="Home"
     Icon="{StaticResource FontIconHome}">
       <ShellContent Route="HomePage" ContentTemplate="{DataTemplate homepage:HomePage}" />
</Tab>
<Tab Title="Download"
     Icon="{StaticResource FontIconDownLoad}">
    <ShellContent Route="DownloadPage" ContentTemplate="{DataTemplate downloadpage:DownloadPage}" />
</Tab>
4

0 回答 0