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

c# - 如何根据登录状态/角色限制/控制用户可以访问的导航路线?

对于我的 Xamarin.Forms 应用程序,我正在寻找一种方法来检查用户是否具有正确的角色/身份验证状态来访问页面。我知道 Angular 有路由守卫,可以重复用于不同的路由来检查身份验证状态。Xamarin.Forms 中有类似的东西吗?

0 投票
1 回答
557 浏览

c# - xamarin.forms shell tabbar 很慢

我在我的应用程序中使用 shell 选项卡栏进行导航。一开始,它运行良好,但当我的应用程序增长时 - 它开始运行缓慢。

有机会解决问题吗?

这是我的外壳:

0 投票
2 回答
1209 浏览

c# - 如何在 Xamarin Shell 中自定义顶部选项卡 (ShellSection) 的外观?

我做了很多研究:

但是,我找不到如何正确实现我的想法。

我的应用程序使用带有弹出菜单的 Xamarin Shell,并且某些页面显示了一个顶部选项卡栏。举个例子,我的应用程序如下所示:

在此处输入图像描述

Xamarin Shell 提供了一种创建这些多选项卡页面的简单方法。现在,我想自定义这些选项卡并更改字体、选择指示器的颜色等。一开始,我以为我可以在styles.xml我的 Android 项目的文件中创建一个特定的样式,然后在android.support.design.widget.TabLayout. 举个例子,我在Tabbar.xml我的 Xamarin 解决方案的 Android 项目中的文件中做了这样的事情:

这在styles.xml文件中总是在解决方案的Android项目中:

但是,什么也没发生,样式也没有应用。我认为这是对如何真正实现我的想法的误解,并且我认为“子”顶部标签栏可能不被认为是真实的TabLayout,因为它只是ShellSection. 最后,我发现也许我需要的是一个自定义渲染器。我正在实施它,但我被困在这个问题上:我不明白如何设置ShellSection. 我当前的自定义渲染器代码是这样的:

在自定义 Xamarin 应用程序顶部选项卡栏的外观的过程中,我是否遗漏了什么?

0 投票
1 回答
86 浏览

c# - 一次同时加载所有标签数据

我正在使用 Shell,我有 4 个页面,但是在您单击选项卡之前它不会开始尝试加载页面。

是否可以一次加载 Shell 中的所有选项卡?

0 投票
1 回答
212 浏览

xaml - 如何将此图标的颜色绑定到此标签颜色?

正如您在下面看到的,FlyoutItem有一个 Icon 和一个Title.

由于这个Title原因,颜色会自动更改Style

So the Labelthat is the Titlechanges color automatically when the FlyoutItemis selected. 我需要Icon做同样的事情。我可以使用触发器来设置,FontImageSource但这有其自身的问题。

鉴于TargetName上面的“FlyoutItemLabel” Style,是否可以创建从FontImageSource.Color到 eachFlyoutItem的绑定"FlyoutItemLabel".Color?它必须向上绑定到FlyoutItem祖先,然后向下绑定到<Label x:Name="FlyoutItemLabel" />,不是吗?

0 投票
1 回答
261 浏览

c# - Shell 导航栏滚动行为

我想问一下是否可以在滚动时为导航栏或Xamarin.Forms 中的TabbedPage( ) 设置动画,或者隐藏或发现查看 gif。我在 Xamarin 本机 android 中尝试了它,添加.TabLayoutShelllayout_scrollFlags

http://lomza.totem-soft.com/appbarlayout-scroll-behavior-with-layout_scrollflags

http://karthikraj.net/2016/12/24/scrolling-behavior-for-appbars-in-android

在此处输入图像描述

0 投票
1 回答
45 浏览

xamarin.forms - xamarin.forms.shell 框架中页面上视觉元素的生命周期

当您导航到另一个页面时,在 shell 应用程序中,内容页面上的视觉元素会发生什么变化?

特定页面似乎仍然存在,仅在第一次显示时调用构造函数而不是在随后再次导航回页面时判断,但似乎内容页面上的一些/所有视觉元素在导航回时被刷新页。

这是我在页面上放置 forms.map 或 syncfusion.sfmap 并离开页面然后返回时看到的具体情况。这些地图显然会在重新加载时重置为初始值,因此它们显然被杀死并重新创建。为地图制作自定义渲染器会显示在重新加载时调用 OnElementChanged,这也表明它不是“仅保留在手边”以等待页面重新加载。

似乎封装了更深层次的控件的表单类确实存在,但是它们与较低级别的控件断开连接,并在再次可见时重新加载它们?我对移动开发有点陌生,可能会也可能不会错过这里的全部要点......

真正的问题是我是否可以避免这种行为。我有一个包含地图的各种页面的外壳应用程序。这些地图填充了各种图形对象,并且正在平移和缩放,因此在短暂离开页面时将它们重置是一件非常痛苦的事情。有没有办法避免这种情况,所以当页面再次显示时它们会迅速恢复活力?

0 投票
0 回答
200 浏览

c# - Shell 导航底部和上部 TabBar 滚动行为

在Shell 导航栏滚动行为的后续工作中,我创建了一个具有滚动行为的自定义 Shell 渲染器工具栏,我想知道是否可以为 Shell 中的 TabBar 或 Tab 创建相同的工具栏。见动图

https://android.jlelse.eu/scroll-your-bottom-navigation-view-away-with-10-lines-of-code-346f1ed40e9e

在此处输入图像描述

AppShell.xaml

0 投票
0 回答
453 浏览

xamarin - 如何更改所选选项卡的字体图标颜色?

使用 Xamarin Forms 5 开发 Xamarin 应用程序,并使用 Shell 进行导航。

选择选项卡后,是否可以将图标的颜色更改为与其下方文本相同的颜色?图标是材料设计字体。

我尝试使用TabBarTitleColor,它会更改选定选项卡的文本颜色。设置图标颜色效果很好TabBarUnselectedColor(可以通过第二张图片中的绿色图标看到)。但是我不能让图标在被选中时改变颜色。

由 TabBarUnselectedColor 着色为灰色的图标

由 TabBarUnselectedColor 着色为绿色的图标

更新

我尝试使用 Font Awesome Icons,但得到的是有趣的字符而不是图标,而且它们也没有改变颜色。

将 Font Awesome otf 文件添加到共享资源中,将构建操作标记为 Embedded Resource。

在组装信息中:

更新 2

尝试FontFamily更改为三个不同的别名(例如 FontAwesome3),同样的问题。试图通过将字形作为普通页面上的文本放入标签中来查看是否存在问题TabBar Tab.Icon,但结果是相同的字符。

字形作为普通页面上标签中的文本

Awesome Font Icon - 显示为一个有趣的字符而不是图标

0 投票
2 回答
532 浏览

c# - Xamarin Shell 层次结构与子页面

我在 Xamarin Shell v5 应用程序中指定了一个简单的页面结构。我有一个带有以下结构的弹出项的弹出项:

当我启动应用程序时,MainPage 显示为默认值。到现在为止还挺好。

浮出控件显示三个页面。也很好。

当我点击 Page2 浮出控件时,会显示页面。但是没有创建导航堆栈,这意味着它还显示汉堡菜单(而不是汉堡图标所在的后退按钮)。

我想让 Page2 成为“子页面”(导航),这样当用户点击 Page2 弹出按钮时,顶部会显示一个后退按钮,以便用户可以返回主页。

我一直在前后阅读文档,但无法弄清楚如何在可视外壳层次结构中执行此操作。我认为它与路由有关,但我不确定如何指定路由,以便 Page2 成为“子页面”(或任何单词)。

有谁知道如何做到这一点?这适用于 iOS 和 Android。

正如我在许多示例中看​​到的那样,我不希望将选项卡显示在屏幕底部。只是一个整洁、干净的弹出菜单。