首页 > 解决方案 > Shell 导航栏滚动行为

问题描述

我想问一下是否可以在滚动时为导航栏或Xamarin.Forms 中的TabbedPage( ) 设置动画,或者隐藏或发现查看 gif。我在 Xamarin 本机 android 中尝试了它,添加.TabLayoutShelllayout_scrollFlags

http://lomza.totem-soft.com/appbarlayout-scroll-behavior-with-layout_scrollflags

http://karthikraj.net/2016/12/24/scrolling-behavior-for-appbars-in-android

在此处输入图像描述

标签: c#xamarin.formsxamarin.androidandroid-toolbarxamarin.forms.shell

解决方案


不确定您是否可以在 XF + Shell 中使用 android 样式实现此行为,但您可以使用自定义渲染器通过覆盖来实现它CreateToolbarAppearanceTracker()

    public class MyShellRenderer : ShellRenderer
    {
        public MyShellRenderer(Context context) : base(context)
        {
        }

        protected override IShellToolbarAppearanceTracker CreateToolbarAppearanceTracker()
        {
            base.CreateToolbarAppearanceTracker();
            return new MyShellToolbarAppearanceTracker(this);
        }
    }

MyShellToolbarAppearanceTracker(随意命名)

using LP = Android.Views.ViewGroup.LayoutParams;
...
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
            };
        }
}

不要忘记按照文档ExportRenderer中的说明正确装饰它。


(如果以下链接的错误/问题已关闭,请忽略此部分)

已知的副作用

这是由Xamarin.Forms 错误 13338引起的微不足道的不良副作用


推荐阅读