使用 Xamarin.Forms Shell 时主选项卡是不是可以显示在顶部

Posted

技术标签:

【中文标题】使用 Xamarin.Forms Shell 时主选项卡是不是可以显示在顶部【英文标题】:Can primary tabs appear at the top when using Xamarin.Forms Shell使用 Xamarin.Forms Shell 时主选项卡是否可以显示在顶部 【发布时间】:2020-06-10 22:25:38 【问题描述】:

客户希望主选项卡出现在 ios 的底部和 android 的顶部。使用Shell时这可能吗?我知道嵌套/辅助选项卡可以出现在顶部,但我再次指的是主要/***选项卡。 Shell 是否强制主选项卡始终是底部选项卡,还是有办法将它们也显示在顶部?

【问题讨论】:

【参考方案1】:

抱歉,Shell 强制主标签始终位于底部,我们无法修改。

shell tabbar 的布局设计为默认。您可以在这里查看source code of Shell:

public override AView OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    
        if (_shellContent != null)
        
            _page = ((IShellContentController)_shellContent).GetOrCreateContent();
        

        _root = inflater.Inflate(Resource.Layout.ShellContent, null).JavaCast<CoordinatorLayout>();

       //here layout be designed as default 
        _toolbar = _root.FindViewById<Toolbar>(Resource.Id.shellcontent_toolbar);

        _renderer = Platform.CreateRenderer(_page, Context);
        Platform.SetRenderer(_page, _renderer);

         ...

        return _root;
    

最后如你所说,建议不使用 Shell 来实现这一点是可能的。

【讨论】:

以上是关于使用 Xamarin.Forms Shell 时主选项卡是不是可以显示在顶部的主要内容,如果未能解决你的问题,请参考以下文章

在 Xamarin.Forms Shell 中隐藏 tabbedPage 的标题

Xamarin.Forms:处理导航工具栏按钮(Shell)

Xamarin.Forms Shell 将数据传递到弹出项视图

Xamarin.Forms Shell 如何在路由导航中向字符串注入多个不同的值

有没有办法在 Xamarin.Forms Shell 顶部选项卡中显示图标?

Xamarin.Forms Shell 选项卡仅显示列表中的最后一个选项卡