xamarin - Xamarin Forms Shell - 一次加载每个选项卡 - 急切加载而不是延迟加载
问题描述
在 Xamarin Forms 中,我过去使用 TabbedPage 来制作选项卡,并且每个选项卡都会一次加载,因此当您从一个选项卡转换到另一个选项卡时,它已经加载了。
现在在一个新应用程序中,我正在尝试 Xamarin 4.0 中的新 Shell。我的两个选项卡中有一个网络浏览器,但在您单击选项卡之前它不会开始尝试加载页面。是否可以一次加载 shell 中的所有选项卡?
解决方案
我正在发布我提出的实际问题的答案,但是,请参阅底部的免责声明。
Xamrin Forms 4.0 预览版,急切加载页面使用以下代码:
<ShellSection x:Name="SpotlightShellSection" Title="Spotlight" Icon="tab_feed.png">
<ShellContent Title="Stats" >
<local:StatsPage/>
</ShellContent>
<ShellContent Title="Upcoming" >
<local:UpcomingPage/>
</ShellContent>
<ShellContent Title="ByMonth" >
<local:ByMonthPage/>
</ShellContent>
<ShellContent Title="Stats2" >
<local:StatsPage/>
</ShellContent>
</ShellSection>
要延迟加载,请使用如下代码:
<ShellSection x:Name="SpotlightShellSection" Title="Spotlight" Icon="tab_feed.png">
<ShellContent Title="Stats" Content="" ContentTemplate="{DataTemplate local:Spotlight.StatsPage}" />
<ShellContent Title="Upcoming" ContentTemplate="{DataTemplate local:Spotlight.UpcomingPage}" />
<ShellContent ContentTemplate="{DataTemplate local:Spotlight.ByMonthPage}" />
</ShellSection>
警告,这是我的问题,WebViews 的内容不一定只会在 android 中保持加载。在 iOS 中,webviews 会按预期保持其内容。
推荐阅读
- javascript - 如何从选定的 ajax 下拉列表 PHP 中插入数据
- android - 在设置适配器后添加项目时防止 ArrayIndexOutOfBoundsException
- python - Python-Google NLP Api 返回 ssl.SSLEOFError: EOF 发生违反协议
- asp.net-mvc - 不要在基于令牌的身份验证中使用 cookie - asp.net 核心
- data-structures - 为什么许多类型的堆数据结构中的节点只有两个孩子?
- android - 以编程方式设置视图的位置
- c# - 当我尝试将数据插入我的访问数据库时,它显示异常处理程序错误:语法错误 INSERT INTO 语句
- scala - Akka-streams 通过异步处理对广播产生背压
- c - 为什么我的代码中的 fork() 函数没有创建子进程?
- android - Chrome 自定义选项卡自定义(如 setToolbarColor、开始和退出动画)不起作用