Xamarin 社区工具包 StateLayout 未显示

Posted

技术标签:

【中文标题】Xamarin 社区工具包 StateLayout 未显示【英文标题】:Xamarin Community Toolkit StateLayout not showing 【发布时间】:2021-10-08 23:54:52 【问题描述】:

我正在尝试为 Xamarin 表单页面实现 StateLayout,如下所述: https://docs.microsoft.com/en-us/xamarin/community-toolkit/views/statelayout

但是,我无法显示加载状态视图。

重现步骤:

    创建一个 Xamarin Forms 空白应用。 添加 Xamarin 社区工具包参考。 使用此代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
             x:Class="App4.MainPage">

    <Grid xct:StateLayout.CurrentState="Loading">
        <xct:StateLayout.StateViews>
            <xct:StateView StateKey="Loading">
                <Grid BackgroundColor="White">
                    <StackLayout VerticalOptions="Center" HorizontalOptions="Center">
                        <ActivityIndicator Color="#1abc9c" />
                        <Label TextColor="Red" FontSize="50" Text="Loading..." HorizontalOptions="Center" />
                    </StackLayout>
                </Grid>
            </xct:StateView>
        </xct:StateLayout.StateViews>

        <Label Text="Loaded" />

    </Grid>

</ContentPage>

我得到的不是“正在加载”标签是这样的:

我做错了什么?

【问题讨论】:

【参考方案1】:

根据你显示的文档,你应该在StateLayout.CurrentState属性上使用Binding,然后在对应的cs页面上创建一个LayoutState类型的变量,并使用CurrentState = LayoutState.Loading;赋值才能正常显示。

【讨论】:

你是对的。通过使用绑定,我可以显示加载状态。我不明白为什么我不能在没有任何绑定的情况下设置 xct:StateLayout.CurrentState="Loading" 。还是谢谢。

以上是关于Xamarin 社区工具包 StateLayout 未显示的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 社区工具包 TabView 高度

Xamarin 社区工具包弹出 MVVM 绑定问题

即使条目为空,Xamarin 社区工具包输入验证也为真

Xamarin效果第二十一篇之GIS中可扩展浮动操作按钮

使用 Visual Studio 2015 运行啥模拟器 - 让 Xamarin 工作的社区版>

Xamarin对Visual Studio用户免费 Xamarin SDK将开源