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

xamarin.forms.shell - Xamarin Shell 辅助页面使用 RelativeLayout 布局,顶部有一个空白栏

Xamarin Shell 跳转到二级页面后,二级页面使用RelativeLayout布局。子视图的Y值设置为和页面的Y值一样,但实际视图不是这样的。子视图距页面顶部大约 40 个空白。为什么?这个bug怎么解决?</p>

0 投票
1 回答
287 浏览

c# - 传递页面 ID 时后退按钮上的外壳路由问题

我仅在 Android 上收到以下错误(在 iOS 上很好)

外壳:无法向后导航:System.ArgumentException:匹配的不明确路由://D_FAULT_FlyoutItem12/IMPL_homepage/homepage/indexpage/indexpage

我在 AppShell 中这样声明页面

因为页面的内容是动态的,所以我像这样导航到它

从列表转到索引页面时,这可以正常工作

但是,当我到达索引页面然后转到另一个不同类型的页面时,也是通过在 AppShell 中注册的路由,但再次通过传入一个 ID,然后尝试返回,我得到了错误

同样,该错误仅发生在 Android 上 - iOS 工作正常

0 投票
2 回答
802 浏览

xaml - Shell 在 Flyout Menu 中动态隐藏 ShellItem

IsVisible有没有动态设置的解决方案ShellItem?我必须解决以下问题:我有一个包含 to 的弹出菜单ShellItem,一个是 Login,另一个是 Logout。

现在不必在弹出菜单中看到它们。如果用户已登录,则只有注销项可见。如果用户没有登录,只有“登录”项应该是可见的。正如我所见,弹出菜单是在应用程序启动时构建的,然后再也不会出现,那么我该如何实现呢?并且没有ShellItem.Behavior等。

ShellItem顺便说一句,和 和有什么区别FlyoutItem

0 投票
1 回答
917 浏览

xaml - Xamarin 在一页中有多个弹出窗口

我一直在看 Xamarin.Forms Shell。默认情况下,Shell 中可用的浮出控件允许从屏幕左侧滑动或点击工具栏菜单按钮以使浮出控件出现在屏幕左侧。

我还看到了这种情况的变体,其中工具栏和弹出按钮被翻转,因此工具栏按钮和弹出按钮位于屏幕的右侧。

我的问题是 - 我想在屏幕上显示多个弹出窗口。Shell 有效,但如果我使用 Shell(左侧或右侧,但不能同时使用两者),我似乎只能有一个弹出按钮。有没有办法在 Shell 中使用多个弹出窗口?

或者,有没有更好的解决方案使用其他东西?

0 投票
1 回答
716 浏览

xaml - 在 Xamarin AppShell TabBar 图标属性中使用 FontAwesome 或任何其他 webfonts

我的 Xamarin.Forms(5.0) 应用程序中有 FontAwesome 设置(我使用的是 Microsoft 的底部选项卡式模板)。

我可以毫无问题地在其中一个页面上的图像中显示图标。我似乎无法在 TabBar 元素中显示其中一个字体图标。

在模板中有两个导航元素;“关于”和“浏览”。引用的这些图标似乎是添加到特定 iOS 和 Android 项目中的 .png 文件。我想引用 webfont 图标。

这是我的 AppShell.xaml 代码。有人能看出这有什么问题吗?您在下面看到的所有代码都是模板生成的,除了local2命名空间声明和“显示”ShellContent项。

FontAwesomeBrands只是一个.otf使用 IconFont2Code 网站从文件生成的类。

这是在我的 AssemblyInfo.cs 文件中。

一切都在共享项目的根目录中。该fa-brands-400.otf文件的属性设置为EmbeddedResource. 再一次,它正在使用我添加到 AboutPage.xaml 的图像。

0 投票
1 回答
409 浏览

xamarin.forms - 从 Xamarin 表单中的另一个页面访问特定的 Shell FlyoutItem

在我的 AppShell.xaml.cs 页面中,我可以轻松访问 Shell 的 FlyoutItems:

但是,您如何从另一个页面访问这些?我发现的唯一方法是尝试遍历“Shell.Current.FlyoutItems”。有没有我想念的更简单的方法?

0 投票
1 回答
164 浏览

c# - 导航回第一个外壳项目

您好,我遇到了这个问题,我需要回到我的第一个 Shell 项目,因为我不知道怎么做,而且谷歌搜索没有帮助我在这里问。

我有这 2 个 shell 项目,当用户转到ExplorePage或任何TabBar我想设置后退按钮返回到ChoicePage. 我试图添加await Shell.Current.GoToAsync("..");,但没有运气,甚至PopToRootAsync() 不起作用。

0 投票
2 回答
781 浏览

c# - 为 AppShell.xaml 中指定的页面之外的页面定义路由并导航到这些页面

我有一个 Xamarin shell 应用程序,在 AppShell.xaml 中定义了以下内容:

我的目标是通过单击主页上的图标转到列出应用程序收到的通知历史记录的页面,从主页导航到在 shell 结构之外定义的页面。单击列表中的通知,将转到该通知的详细信息页面。

主页 <-> 通知历史 <-> 通知详情

在 AppShell.xaml 中未定义为 shell 一部分的页面的路由在 AppShell.xaml.cs 中定义为:

问题是,当我在通知历史记录页面上单击通知时,导航动画会在导航到详细信息页面之前显示导航回主页。当我从详细信息页面导航回来时,而不是返回通知列表,它直接进入主页。

我已经尝试了很多方法来解决这个问题。所有似乎都表现出相同的行为,或导致异常。

从我在https://github.com/xamarin/Xamarin.Forms/issues/5790阅读的内容来看,应该将路由定义为:

不幸的是,这会在运行时产生异常:

“无法找出路线:/notificationhistorypage\n参数名称:uri”

为了从主页导航到通知历史记录页面,我尝试了这些:

为了从通知历史页面导航到通知详细信息页面,我尝试了这些:

结果总是一样的。出于某种原因,导航历史页面总是在推送通知详细信息页面之前从导航堆栈中弹出。我正在尝试做的事情是否可能,或者我应该摆脱外壳,并使用旧导航来完成这一切?

0 投票
0 回答
155 浏览

xamarin.forms - Xamarin Forms Shell - TabBar Android 使用自定义字体

我有一个 Xamarin Forms Shell 项目,在 .NET Standard 项目(嵌入式资源)中添加了自定义字体并像这样导出:

我在我的 shell 中使用 TabBar 并想设置字体 Ubuntu。我正在使用自定义渲染器,对于 iOS 来说很简单,我只需要这样做

在我IShellTabBarAppearanceTracker继承的类的 UpdateLayout 方法中。但是我们如何在 Android 中访问这些字体,我尝试了类似的方法

此解决方案基于此帖子。但它不起作用。

0 投票
3 回答
419 浏览

c# - 带参数和 TabBar 的 Shell 路由

WebView我正在尝试将参数路由到可以由多个选项卡重用的页面(包含 a )。我想通过一个UrlTitle但到目前为止BrowserPage我得到的是空字符串

AppShell.xaml


AppShell.xaml.cs


浏览器页面.xaml.cs

BrowserPage代码隐藏中,Title并且Url是空的。如何以这种方式正确传递和接收数据?