问题标签 [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 投票
0 回答
769 浏览

xamarin.forms - xamarin shell:动态生成路由页面

我正在尝试新发布的 xamarin shell。基本上,我正在尝试如何将路由映射到动态生成的页面。我注意到RegisterRoute有一个需要类型对象的重载RouteFactory。我为此创建了一个演示类:

现在,在App.cs我创建一个注册演示路线:

我尝试了几种设置Shell对象的变体。我大多得到钝的空指针,需要猜测要更改的内容。

截至目前,我App的类的构造函数具有以下代码:

这也给了我一个钝的空指针。我现在正在尝试的只是显示路线“蝙蝠侠”的页面。即使是弹出或选项卡也不是强制性的。

更新

虽然不是目的,但我至少让应用程序打开了以下内容:

单击按钮时,它现在向我显示以下异常并且从不调用该GetOrCreate函数。

System.Exception: <获取异常详细信息超时>

更新 3

基本上,我正在寻找一种将路由绑定到 ShellContent 的方法,它只是显示我提到的路由属性并在路由中显示一个页面。我需要提及路线并提及页面的内容模板是没有意义的。路由已映射到页面。

0 投票
1 回答
293 浏览

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

我正在将现有代码迁移到 Xamarin Forms 4.0 Shell,以前我正在使用TabbedPage,但现在我想使用ShellTabs。

以下是迁移后代码的样子。我注意到的是它只显示一个顶部选项卡,该选项卡在列表中具有最后一个条目。就我而言,它只显示 Tab2。

0 投票
0 回答
382 浏览

xamarin - 使用带有 Xamarin Forms 4.0 Shell 的 IoC 容器来解析页面实例

我目前正在尝试迁移当前的 Xamarin Forms 2.0 应用程序以利用新的 Xamarin Shell 工具(特别是导航)。这个现有的应用程序基于 MVP 模式,这意味着在我的 Presenter 层中,我注入了我的页面实例,以允许 Presenter 连接页面上的事件。

我目前正在努力实现这个Shell,因为据我所知,它控制创建页面实例并且不使用我当前使用的IoC(恰好是Unity)。

有没有一种方法可以将 Shell 配置为在创建页面实例时使用 IoC 容器来解析页面实例,而不是自己创建它们。

对此的任何帮助将不胜感激。

0 投票
4 回答
8345 浏览

c# - 在 Xamarin Forms Shell 中隐藏 TabBar

我不想在 Xamarin Forms Shell 4.0.0.497661 项目中隐藏 TabBar。

我尝试使用:

页面加载并绘制后,但没有效果。

如果我在InitializeComponent();之后放入代码隐藏 .cs 构造函数;已启动空引用异常,但这对我来说不是问题。

如何在开始或开始后隐藏 TabBar?

编辑:

最后,我没有办法隐藏底栏......当FlyoutItem包含在Shell上时出现底栏,如:

如果我删除 FlyoutItem,则不会显示底栏。

没有找到其他方法来删除它!但它解决了我的问题。

0 投票
3 回答
3975 浏览

xamarin.forms - 在 Xamarin Forms Shell 上设置默认选项卡

如何在 Xamarin 表单 shell 的选项卡栏中设置默认选定的选项卡?

根据 Xamarin Forms 文档,第一个 Shell 内容将是屏幕上的默认内容。然而; 我正在尝试将“搜索”页面设置为默认选项卡,而不是“已保存”。

我尝试设置选项卡索引 - 不走运我也尝试在 Shell 的 onAppearing 方法上调用路由,但似乎 Shell 的 onappearing 方法永远不会被触发。

我也尝试导航到搜索:

当应用程序打开时需要设置默认选项卡的最佳解决方案是什么?

谢谢你。

0 投票
3 回答
3130 浏览

c# - 视觉层次结构外的 Xamarin.Forms Shell 导航

我在如何实现导航到未在 shell 视觉层次结构中表示的页面(在我的 Shell xaml 中定义)时遇到问题。

根据我在 docs 中读到的有关 Shell 导航的内容,我可以通过两种方式导航到这样的页面:

  1. 使用导航属性: /li>
  2. 注册路由并使用 Shell 的 URI 导航: /li>

两种方法都遇到相同的问题:一旦您使用任何一种方法导航到视觉层次结构之外的页面,Shell 的 flyoutItems 之间的正常导航(使用弹出菜单)将使应用程序崩溃并出现以下错误:

如何重现:

  1. 向 Shell 的视觉层次结构添加两项:

    /li>
  2. 使用本文顶部描述的两种导航方式之一,使用 Page1 上的按钮导航到 Page3(上面未定义的页面): /li>
  3. 使用弹出菜单导航到第 2 页
  4. 使用弹出菜单导航到 Page1 - 应用程序现在应该崩溃。

我已经在我的主要项目和一个小型测试项目中对此进行了广泛的测试,但似乎找不到解决方案。任何帮助将不胜感激。

0 投票
1 回答
225 浏览

xamarin - 无法导航到之前调用过的页面

我的应用程序逻辑的简短介绍:我的应用程序正在使用 REST-Api,并且需要一个令牌来处理除特定请求之外的所有请求(我们称之为“配对页面”)。在我导航到我的任何页面之前,我正在检查目标位置。如果我的目标是我请求令牌的页面,则不会检查现有令牌。对于每个其他页面,都需要一个令牌。如果不存在令牌,则用户应导航回“配对页面”。我的起始页是我的配对页。

有什么问题?:
启动应用程序(配对页面)并获取令牌并导航到第二页时 - 我们称之为“概述” - 一切正常。概述有一个按钮,该按钮调用一个删除我的令牌并导航回配对页面的方法。这也有效。

现在有趣的部分:当我再次尝试配对并导航到概览时(第二次),没有完成导航。我的意思是我的概述没有弹出。

我正在使用 Xamarin 的 Shell Navigation 并覆盖 OnNavigating-Method。

代码:

让我们看一下args:

应用启动,pairing-page:
args.Target.Location: //Admission.Event.Pair
args.Current.Location: null

正在弹出Pairing-Page,一切正常。

单击处理获取令牌的按钮,然后导航到概览:
args.Target.Location: Admission.Event
args.Current.Location: //Admission.Event.Pair

概览页面弹出,一切正常。也得到了一个有效的令牌。

单击处理删除令牌并导航到配对页面的按钮:
args.Target.Location: Admission.Event.Pair
args.Current.Location: //Admission.Event.Pair/Admission.Event

令牌被正确删除(为空)并弹出配对页面。一切都好。

现在问题出现了:
当我现在尝试获取令牌并再次导航到概览时,我的 args 具有此内容并且我的概览不会显示:
args.Target.Location: Admission.Event
args.Current.Location: // Admission.Event.Pair/Admission.Event/Admission.Event.Pair

有什么想法吗?
我的第一个想法是这可能是目标位置的问题。

0 投票
1 回答
1009 浏览

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

我正在将一个项目重构为使用 Xamarin.Forms 4.0 发布的带有shell的新导航,现在我正在迁移一个 tabbedPage,它的效果是从 tabbedPage 中隐藏子项的标题,使图标仅可见,使用 Shell如果不是自己的Shell类允许您实现tabbedPage,masterPage,则不再需要页面从TabbedPage继承...问题是现在我不知道如何应用以前使用的效果,因为我不能参考tabbedPage。

注意:在这种情况下,我使用Flyout,因为我需要一个带有汉堡菜单和 tabbedPage 的设计,这就是我不只使用TabBar的原因。

标签页图像

母版页图像

0 投票
4 回答
5002 浏览

xamarin.forms - Xamarin Forms Shell - 更改选项卡颜色

我一直在使用Xaminals 示例,对于大多数元素,有一种方法可以使用“Shell”更改颜色。在 XAML 中。但是,我无法弄清楚如何更改所选标签的颜色(见下面的截图):

在此处输入图像描述

它总是灰色的。任何建议,将不胜感激。谢谢!

0 投票
0 回答
102 浏览

xamarin.forms - 幻影 ShellGroupItem 被添加到 MainPage.InternalChildren 列表

幻影第三个粉色边框(下一个)

我正在使用 Xamarin.Forms Shell 布局,以及使用名为 CustomFlyoutItem 的自定义子类 FlyoutItem 的 Flyout 菜单,其显示由数据项模板控制。该模板使用 Grid 并包含两行。第二行只是一个粉红色的底部边框(BoxView 高度 1),只有在我的 customFlyoutItem 的 bool 属性 HasBottomDivider 设置为 true 时才应显示。(使用 IsVisible 绑定来实现这一点)。

有两个问题:1)弹出项中的最后一项应该是我屏幕截图中的“帮助”项。但是,该列表似乎包含一个没有图标或文本的额外幻像 CustomFlyoutItem。在调试时,我看到这是一个“ShellGroupItem”类型的项目 2)该项目在它下面也有一个粉红色的边框,这确实是主要问题。

我有一个解决方法,可以在显示页面之前使用 linq 删除该项目,但我想知道为什么它首先存在的根本原因。