问题标签 [xamarin.forms.shell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
204 浏览

xamarin.forms - 无法在 AppBar 上更改颜色

我只能部分更改 AppBar 的背景颜色。

具体来说,AppBar 上的后退按钮段不会改变颜色。

在此处输入图像描述

内容页面.XAML

AppShell.XAML

我尝试了以下操作:

0 投票
2 回答
852 浏览

xaml - 如何将登录页面作为 ShellItem 添加到 Shell 而不显示为 FlyoutItem

当我像这样向 Shell 添加加载和登录页面时:

它可以工作,但是页面也作为没有名称的项目添加到 Shell 弹出项目中,但是当我按下它时,我会返回加载或登录页面......

我无法弄清楚如何解决这个问题......

有人面临同样的问题吗?

0 投票
1 回答
542 浏览

xaml - TabbedPage 导航和 Shell 选项卡导航有什么区别

基于TabbedPage的导航和基于Shell Tabs ( Shell++ TabBar)的导航有什么区别Tab?(如有可能,请提供示例)。

Shell页面导航的替代品吗?

0 投票
0 回答
658 浏览

android - 将控件上方/上方附加到 Shell 应用栏而不更改它

我正在尝试Label在应用栏(导航栏)上方添加一个可以是任何控件的图层(例如,让我们使用一个) Shell,以便它在所有页面上都可用。为此,我尝试使用TitleView,这显然不能满足我的要求(请参见下面的屏幕截图)。

试图

Page1.xaml:

AppShell.xaml:

因此,我要实现的目标分为两点:

  1. Label应该在整个应用栏 ( FlyoutIcon+ )的TitleView顶部,而不是TitleView仅在顶部,如屏幕截图中所述。
  2. 同时原有的风格ContentPage.Title不应该改变。

原始页面标题

原始标题

试图

试图

期望的结果

期望的

奖金问题:

应用栏似乎Shell由两部分组成FlyoutIconTitleView. Xamarin.Forms 如何/在哪里构建Shell布局?非常感谢您在XF Github 存储库中提供简短解释或指向相关类。

尝试使用一些 Shell 自定义渲染器但没有成功。

编辑

  • 附加的控件应该是其中的一部分,Shell以便我可以根据当前页面自定义它的内容。Flyout这意味着在打开时也要被覆盖。

编辑 2

解决方案可能来自即将推出的功能Shell.AppBar。同时开放Android项目级别的解决方案。

0 投票
1 回答
793 浏览

xamarin.forms - 带有参数的 Xamarin.Forms Shell 导航层次结构

如何在 Xamarin.Forms Shell 应用程序中定义以下导航层次结构?

  • 导航选项卡(路线“主”)
    • 带有订单列表的页面(路线“订单”)
      • 一个订单的详细信息页面(路线“订单”,参数“订单ID”)
        • 该特定订单的子详细信息页面 1(路线“details1”,参数“orderId”)
        • 该特定订单的子详细信息页面 2(路线“details2”,参数“orderId”)

只要只有order页面而没有定义子详细信息页面,它就可以很好地工作。然后我可以通过Shell.Current.GoToAsync("//main/orders/order?orderId=5")路由导航到该页面。

但是,当我添加子详细信息页面时(无论我是通过Routing.RegisterRouteXAMLGoToAsync还是System.ArgumentException: 'unable to figure out route for: //main/orders/order?orderId=5'

通过 XAML 定义层次结构:

当我通过自定义路由定义它时,同样的例外:

0 投票
1 回答
597 浏览

xamarin - 底部的 Xamarin Forms Flyout 菜单

有没有像图像一样在外壳底部设置一个菜单项?

所以你将拥有所有正常的菜单:

然后在它的底部:

在此处输入图像描述

0 投票
2 回答
978 浏览

android - Xamarin Forms Shell 如何使用自定义渲染器自定义选项卡

我想实现这个设计(用渐变突出显示选定的选项卡): 在此处输入图像描述

我一直试图在第一次使用ShellTabLayoutAppearanceTracker和自定义的 android 上实现这一点,ShellRenderer但我什至无法更改 tablayout 中任何选项卡的背景颜色。

此外,即使我的标签栏中有 4 个标签,也tabLayout.TabCount只能返回1. 显然,这一切都有我不明白的地方。

你会怎么做?iOS 解决方案的奖励积分也是如此。

到目前为止,这是我的代码:

0 投票
2 回答
727 浏览

c# - 在 xamarin 表单 shell 中打开左侧菜单时的事件

我正在使用 xamarin 表单外壳。我有 1 个图像和 1 个标签来分配用户的姓名和个人资料图片。我希望每次菜单打开时(按下按钮或向右拖动)再次更新该值,但我找不到任何与之相关的事件。有人请帮帮我

0 投票
0 回答
322 浏览

xaml - 定义 Shell.TitleView,同时在 shell 中保留选项卡的标题文本,但似乎以不同的字体显示

我正在定义一个自定义Shell.TitleView以保留我的选项卡/页面标题,ContentPage如下所示:

这里的问题是默认生成的标题Shell.TitleView(在第二个选项卡中)与我的不同(当您从一个选项卡导航到另一个选项卡时,差异比在屏幕截图中更明显),起初我认为这是一个问题FontSize和之间的组合FontAttributes="bold"

在此处输入图像描述 在此处输入图像描述

澄清

  • 第一个选项卡:使用我的自定义Shell.TitleView.
  • 第二个选项卡:不使用/定义一个Shell.TitleView.
  • 我没有使用任何样式或自定义字体,只是使用空模板项目进行外壳弹出。
  • 不同我的意思是应用栏中的自定义标题文本有点粗,删除粗体属性不会使其相同。

是什么导致了这种差异?如果是因为不同FontFamily,那么FontFamilly默认的Shell.TitleView使用的是什么?

如何让它一样?

编辑

使用 Opacity 和 TextColor,它们几乎相似,但仍不是 100%。

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
325 浏览

c# - 我可以在 Xamarin Forms Shell 的选项卡栏上方添加静态视图吗?

我想在 Xamarin Forms Shell(iOS 和 Android)的选项卡栏上方添加一个自定义视图,以实现始终可见的音频播放器。

对于 Android,我查看了这篇关于在 Android 上自定义标签栏的博客文章(https://www.andrewhoefling.com/Blog/Post/xamarin-forms-shell-customizing-the-tabbar-android),并添加了一个额外的布局id '@+id/bottomtab.view' 到我自定义的 BottomTabLayout.axml。

在我的 TabBar 子类的自定义 ShellItemRenderer 中,我想将 xaml 添加到布局中,但这不起作用。

XAML

由于某种原因,应用了外部网格的背景,就像您在屏幕截图中看到的那样,但没有显示内容。我不知道如何应用正确的尺寸来使网格和孩子占据屏幕的整个宽度。

截屏

我喜欢在 xaml 中定义视图内容以便能够设置绑定等的想法。如何在布局中正确渲染视图?

================

2020-11-12 更新

我已更改代码以实现 Leo 的建议,但将其更改为使用 android xml 中的 bottomtab.view 布局。(我使用 framelayout bottomtab.tabbar.container 作为一种浮动按钮,效果很好)。

但是,标签栏上方的视图宽度看起来不正确。在屏幕截图中,您看到 Pink BoxView 没有右侧,看起来内部 gridview(白色背景)太宽了。屏幕截图的底部黑色边框是我编辑的标签栏。

截屏

这是我对 xaml 中额外视图的定义:

这是改编的 SetupView 方法

有什么建议让它使用正确的宽度吗?还是我的 xaml 定义不正确?