首页 > 解决方案 > Xamarin Forms Shell - 一次加载每个选项卡 - 急切加载而不是延迟加载

问题描述

在 Xamarin Forms 中,我过去使用 TabbedPage 来制作选项卡,并且每个选项卡都会一次加载,因此当您从一个选项卡转换到另一个选项卡时,它已经加载了。

现在在一个新应用程序中,我正在尝试 Xamarin 4.0 中的新 Shell。我的两个选项卡中有一个网络浏览器,但在您单击选项卡之前它不会开始尝试加载页面。是否可以一次加载 shell 中的所有选项卡?

标签: xamarinxamarin.forms

解决方案


我正在发布我提出的实际问题的答案,但是,请参阅底部的免责声明。

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 会按预期保持其内容。


推荐阅读