c# - Shell 导航栏滚动行为
问题描述
我想问一下是否可以在滚动时为导航栏或Xamarin.Forms 中的TabbedPage
( ) 设置动画,或者隐藏或发现查看 gif。我在 Xamarin 本机 android 中尝试了它,添加.TabLayout
Shell
layout_scrollFlags
http://lomza.totem-soft.com/appbarlayout-scroll-behavior-with-layout_scrollflags
http://karthikraj.net/2016/12/24/scrolling-behavior-for-appbars-in-android
解决方案
不确定您是否可以在 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
中的说明正确装饰它。
(如果以下链接的错误/问题已关闭,请忽略此部分)
已知的副作用
推荐阅读
- google-apps-script - 创建一个脚本,该脚本将根据绘图位置或分配脚本时输入的信息增加单元格
- java - 单击Android(Java)中RecyclerView中的每个项目时,在BottomSheetDialog中以编程方式创建CheckBox的简单代码/有效代码是什么
- r - Tidymodels - 帮助评估通过配方制作的回归模型
- angular - ENOENT:没有这样的文件或目录,Angular 12 升级后的 scandir
- linux - 如何在 Solus Linux 上使用 CosmoNim (GCC)?(段错误)
- angular - 在气泡图中画线 ng2-charts
- jquery - 异常消息:: 必须返回一个关系实例。laravel中的数据表错误
- c# - 如何从 Application.Resources 绑定到 ViewModel 属性?
- python - Pytube 总是以 urllib.error.HTTPError: HTTP Error 404: Not Found 失败。是否有解决此问题的方法?
- javascript - 我对此功能未定义