问题标签 [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 回答
2542 浏览

c# - 选定(当前)FlyoutItem 的装扮风格

我注意到,当我像文档中所说的那样自定义弹出项外观时当前的 FlyoutItem 不再被标记。

从文档中截取代码以更改项目外观:

Shell.ItemTemplate 之前的屏幕截图 Shell.ItemTemplate
之后的屏幕截图

人们会假设还必须有某种壳牌。Current/Active/Selected ItemTemplate 自定义,但我找不到。

有什么想法可以自定义当前的外壳项目外观,或者至少使默认项目标记与 Shell.ItemTemplate 一起使用?

0 投票
1 回答
1010 浏览

c# - Xamarin Forms Shell Flyout:如何消除 FlyoutHeader 和第一个 FlyoutItem 之间的间隙?

如下图所示,Shell 的 Flyout 有一个缺口:

屏幕截图
标题背景为黑色,项目背景为黄色。中间的白色是我要删除的。

我已经在一个空白的新项目中对此进行了测试(我也截取了这张截图),所以我很确定这不是我的代码在做的。我尝试为 AppShell 中的大多数元素设置边距和/或填充。

如果有帮助,当我将项目拉下时,蓝色的“ you-are-trying-to-pull-a-scrollable-list-past-its-end ”图形就在标题下方,所以这让我觉得gap 是 Fl​​yout 内部项目列表的一部分。

关于如何消除差距的任何想法?

0 投票
4 回答
5549 浏览

xamarin.forms - Xamarin 形成 4 种带复杂参数的 shell 导航

我正在将带有 Prism 的 xamarin forms 3.x 应用程序迁移到带有 shell 导航的表单 4。

我是否必须创建自定义解决方案才能将复杂的参数传递给新页面,或者 Xamarin 有一些内置功能可以接收字符串参数以外的内容?

谢谢。

0 投票
2 回答
1761 浏览

xaml - 如何更改 Shell Flyout 菜单的宽度/高度

我在 Xamarin Forms 应用程序中使用 Shell Flyoutmenu。一切都很好,除了我在菜单中的选项很短而且托盘很宽很长。有没有办法改变 FlyoutMenu 的宽度和高度?我尝试将 a 添加WidthRequest到 shell 对象本身以调整宽度,但似乎没有什么不同。这是我的弹出窗口当前的样子。

截屏

这是 AppShell.xaml 文件的内容

0 投票
0 回答
801 浏览

xamarin - 禁用 Xamarin 4.0+ (iOS) 的 Shell Navigation 中的所有动画

有没有办法在使用 Xamarin.Forms 4.0+ 制作的 Xamarin.Forms 应用程序中禁用页面更改动画并使用新的 Shell Navigation?

使用该函数Shell.GoToAsync(ShellNavigationState, Boolean)时,可以传递false第二个参数animate

但是从弹出菜单导航到的 FlyoutItems 呢?那里不是我调用 GoToAsync 或任何东西,它是由框架完成的。如何禁用这些元素的动画?

编辑:正如用户 Depechie 评论的那样,默认行为是动画 = false。现在我意识到,它只在 iOS 中动画。在使用弹出菜单切换页面时,iOS 正在执行 Alphablending。Android只是换页,显示硬闪烁。

0 投票
1 回答
2856 浏览

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

如何将任何属性注入到我们使用Shell导航的页面中 使用Xamarin 的本机导航很简单,因为您必须实例化页面的类型:

在 Shell 中只允许我传递字符串值

我正在尝试传递一个布尔值,它向我显示以下错误: “'System.String' 类型的对象无法转换为'System.Boolean' 类型。”

如果你尝试发送多个参数,发送的参数都不起作用,有没有办法同时发送几个?

0 投票
2 回答
2037 浏览

xaml - Xamarin.Forms Shell如何去除汉堡菜单中FlyoutItem元素的空间

我正在使用 Shell,我有一个设计,其中在 AsSingleItem 中有一个带有 FlyoutDisplayOptions 属性的 FlyoutItem,我还有几个 MenuItem,这个设计有一个带有选项卡的页面和一个显示 MenuItem 的汉堡菜单,但问题是它是如果我将整个 FlyoutItem 项目的标题和图标放置为空,但如果我将其留空,则该空间不会消失并且是空的,这是一个浪费的空间,我的问题是如何删除该空间?

那是我的代码:

我在这些图像中留下了设计

0 投票
1 回答
2297 浏览

xamarin.forms - 如何从父 shell 选项卡式页面导航到 shell 选项卡式页面

我有一个父外壳标签页。我希望能够从这个父页面的一个 contentPage 导航到另一个 shell 选项卡页面。

0 投票
1 回答
621 浏览

xaml - Xamarin.Forms Shell 在汉堡菜单中将 FlyoutItem 与 MenuItem 组合并订购

我目前在 AsMultipleItems 中有一个带有 FlyoutDisplayOptions 属性的 FlyoutItem,它的作用是汉堡菜单包含与选项卡式页面相同的辅助元素作为元素。我的设计中也有一些 MenuItem,此时它不允许我在 FlyoutItem 中放置 MenuItem,这是我目前的设计:

  • 弹出项 1
  • 弹出项目 2
  • 弹出项目 3
  • 弹出项目 4
  • 弹出项目 5
  • 菜单项 1
  • 菜单项 2
  • 菜单项 3
  • 菜单项 4
  • 菜单项 5

例如,我希望 MenuItem 1 位于 FlyoutItem 1 下,但我不能以任何方式这样做,有谁知道我如何对不在该结构中 FlyoutItem 内的项目进行排序?例如,我想要这样的设计:

  • 弹出项 1
  • 菜单项 1
  • 弹出项目 2
  • 菜单项 2
  • 弹出项目 3
  • 菜单项 3
  • 弹出项目 4
  • 菜单项 4
  • 弹出项目 5
  • 菜单项 5

目前我只能订购一个结构而不是另一个,但我不能组合和订购不同的结构。

这是我的代码:

0 投票
3 回答
6703 浏览

xamarin - 如何导航到具有 Shell 弹出菜单的新页面?

我需要导航到一个页面,该页面将具有外壳弹出菜单,但我不需要它作为菜单中的项目出现。

我试过路由页面

然后使用

但它会抛出一个错误,告诉我堆栈中唯一的页面。Microsoft 文档没有帮助。

全局路由当前不能是堆栈上的唯一页面,因此不支持到全局路由的绝对路由。现在,只需导航到:购物车/

当我尝试

它有效,但顶部栏是默认颜色,菜单按钮不存在。另外,我尝试将购物车作为新页面推送,没有new NavigationPage(),topbar 没有变化,但是 menubutton 可以作为 BackButton,即使我设置了 Behavior