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

android - 如何在 Android 上的 Xamarin.Forms.Shell 应用程序中的 TabBar 更改后防止 WebView 重新加载?

我在一个Xamarin.Forms.Shell包含 4 个标签的应用程序上工作。其中一个选项卡包含WebView允许用户通过提供者提供的 URL 安排约会。

AppShell.xaml看起来像这样(所有图标都用 设置)FontImageSource

BookingPage看起来像这样:

BookingPage首次显示时,WebView正在按预期加载。但是,如果用户更改选项卡并返回到,BookingPage则取决于平台有 2 种行为:

  • iOS上,我们保持WebView原样以更改选项卡。
  • Android上,WebView重新加载

我想知道是否有办法防止WebView在 Android 上重新加载?

我已经搜索过类似的主题,例如如何在标签栏选择后防止 webview 重新加载?但没有答案。

0 投票
1 回答
512 浏览

custom-renderer - Xamarin.Forms:当显示 ToolbarItems 时,如何在 TitleView 中居中显示图像?

我正在开发一个包含4 个选项卡的Xamarin.Forms.Shell 应用程序。我想在所有这些页面上显示一个包含居中 SVG 徽标的公共。 Title

为此,我可以使用TitleView这样的:

这很有效,并且徽标很好地位于NavigationBar. 但是,如果页面包含ToolbarItems,则徽标不再居中。

例如,在一个页面上我有一个ToolBarItem这样的:

是否有另一种方法可以通过使用或计算 SVG 的大小来将SVG 中的居中图像显示为 TitleCustomRendererToolbarItems

我看到一年前已经发布了一个类似的问题,但没有任何解决方案......

我已经尝试过ToolbarItemTitleView这样重绘:

在 iOS 上是正确的,但我可以看到:

  • 徽标不像不包含任何 的页面那样完全居中ToolBarItem,因为当我在页面之间切换时有一个小间隙
  • 图标的位置不像我使用ToolBarItem

在 Android 上,结果不正确:徽标的高度不同,并且图标不在TitleView.

0 投票
1 回答
749 浏览

xaml - Xamarin.Forms:是否可以在代码隐藏中更新 Shell.TitleView?

我在一个包含 4 个选项卡的Xamarin.Forms.Shell 应用程序上工作。

在主选项卡上,我有:

  • aTitleView包含公司标志的
  • sScrollView包含一个Imageas Header
  • aScrollView包含主要内容,可以覆盖Header使其完全可见

XAML 如下所示:

默认情况下,我想在/上显示标题 :因此将隐藏,背景将是标题。然后我想仅在内容覆盖Header的一半时显示默认/ :这样才会可见,并且背景将是默认背景。ImageNavigationBarStatusBarNavigationBarStatusBarImage NavigationBarStatusBarNavigationBarStatusBar

但是我没有找到任何访问该Shell.NavBarIsVisible属性或Shell.TitleView代码隐藏的方法。

所以我想知道这可能吗?

0 投票
0 回答
508 浏览

xaml - Xamarin.Forms.Shell:是否可以将自定义 NavigationPage 与 Shell 一起使用?

我在一个包含 4 个选项卡的Xamarin.Forms.Shell应用程序上工作。

主选项卡上,我有:

  • 一个NavigationBar通过一个TitleView包含一个标志
  • 一个ScrollView包含一个Image作为背景的标题
  • aScrollView包含主要内容,可以覆盖 Header 使其完全可见

XAML如下所示:

像这样,它工作正常。

但我想:

  • 默认隐藏,只有在用户开始滚动主要内容后才显示NavigationBar
  • 背景的Image标题填充了顶部屏幕的所有空间:因此StatusBar应该在此图像上以透明方式显示

我已更改XAML以隐藏NavigationBar并通过否定在屏幕顶部显示 Header Margin

=> 这在 iOS 上运行良好,但在 Android 上并不完全,因为StatusBar它不透明。

最后,为了显示NavigationBar滚动后,我使用了一个ParallaxScrollView控件来获取此视图的一些引用。

我做这样的事情:

=> 在iOS上,显示的NavigationBar很好,但是当NavigationBar再次隐藏时,标题前还有剩余的间隙。在Android上,渲染是令人满意的。

这是iOS上的渲染

似乎无法NavigationPage为 Xamarin.Forms.Shell 应用程序的主页创建自定义。那么有没有办法实现预期的行为?

0 投票
1 回答
4597 浏览

c# - 漏洞?System.ArgumentException: '无法找出路线:

错误

System.ArgumentException: 'unable to figure out route for: //RegisterPage Parameter name: uri' System.ArgumentException: 'unable to figure out route for: //LogoPage Parameter name: uri'

怎么了?它无法弄清楚路线...?

XAML

背后的代码

WelcomeViewModel.cs

0 投票
2 回答
655 浏览

c# - 注册shell页面路由的正确位置?

注册页面路由的正确位置在哪里(在弹出菜单上不可见)?

OnStart当页面在弹出菜单上不可见时,我通过 App.xaml.cs将其添加到方法中

当页面在弹出菜单上可见时,我添加这样的页面路由

0 投票
2 回答
1986 浏览

xaml - 如何使用 Shell 在 Xamarin Forms 4.8 版本的 Flyout 菜单和底部标签栏中定义不同的项目?

我正在开发一个 Xamarin Forms 4.8 版本的应用程序,带有侧边菜单(Flyout)和底部Tabbar使用 Shell 功能。我的侧边菜单有 4 个项目,底部Tabbar有 5 个项目。两者都有不同的项目。Tabbar我的应用程序周围总是需要有这样 5 个项目的底部。当我单击菜单内的任何项目时,底部Tabbar项目将替换为侧菜单项。我不知道为什么。

我的 AppShell.xaml 页面如下所示,

当我在 Android Emulator 中运行时,我的底部标签栏如下图所示

底部标签栏

Flyout 中的侧边菜单如下

弹出菜单中的侧边菜单

当我单击菜单内的项目时,页面呈现如下

侧边菜单覆盖底部标签栏

在这里,底部Tabbar项目被替换为侧菜单项。

0 投票
2 回答
860 浏览

xamarin - 如何在没有后退按钮的 Xamarin Shell 中切换页面?

我想在基于 Shell 的 APP 顶部制作一个主页按钮。(参考 Xanimals 应用程序。)

此主页按钮的目的是移动到 Shell 中的特定常规页面之一。

gotoasync() 函数默认将上一页添加到导航堆栈,并启用后退按钮。我不想要后退按钮,我只想像按下 Shell 结构中的弹出按钮时那样移动。

请帮我。

0 投票
2 回答
969 浏览

android - Xamarin.Forms.Shell:如何管理 StatusBar 颜色

我开发了一个小型Xamarin.Forms.Shell 应用程序,但没有找到如何为ForegroundBackground应用自定义颜色StatusBar

我的应用程序使用非常基本的配色方案:

  • 和的前景黑色NavigationBarTabBar
  • 白色背景_ NavigationBar_TabBar

我想为 保留相同的颜色StatusBar但事实并非如此:

  • iOS上,StatusBar颜色似乎由LightMode / DarkMode管理

=> 在不管理 DarkMode的设备上,或者当LightMode 处于活动状态时,StatusBar信息会很好地显示 iOS没有暗模式

=> 但是当DarkMode 处于活动状态时情况并非如此,因为这些信息是隐藏的 iOS - 黑暗模式

  • Android上,StatusBar颜色似乎由styles.xaml文件和android:statusBarColor属性管理

=> 如果我指定白色,则StatusBar信息不可见,因为也有白色 styles.xaml - 白色

=> 而如果我指定灰色,则StatusBar信息清晰可见 styles.xaml - 灰色

所以我尝试应用那里给出的解决方案:

  • iOS上不起作用:我仍然有相同的行为,因为StatusBar信息不可见,因为当DarkMode 处于活动状态时也有白色
  • 这似乎适用Android,但这并不涵盖所有 Android 版本(因为它适用于 Marshmallow 版本)

依赖 - 白色

=> 如何管理 iOS 状态栏的前景色?安卓够用吗?

0 投票
1 回答
327 浏览

c# - 导航到 Xamarin Shell 中的特定顶部选项卡页

我的Xamarin Shell应用程序在文件中定义了以下FlyoutItem元素AppShell.xaml

我想要获得的行为如下:

  • 单击B页面,我希望将用户重定向到命名的C选项卡(这是默认行为并且开箱即用)。ShellSectionB
  • 单击D页面,我希望将用户重定向到命名的D选项卡。ShellSectionB

我如何获得这个?