在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>