C# ListView为空时是否不发生Xamarin.Forms PullToRefresh?

C# ListView为空时是否不发生Xamarin.Forms PullToRefresh?,c#,xaml,xamarin.forms,C#,Xaml,Xamarin.forms,在Xamarin.Forms中,我有一个简单的ListView,它使用MVVM绑定到视图模型 <ListView Grid.Row="1" ItemsSource="{Binding ContactsGrouped}" IsGroupingEnabled="true" IsPullToRefreshEnabled="True"

在Xamarin.Forms中,我有一个简单的ListView,它使用MVVM绑定到视图模型

  <ListView Grid.Row="1"
                     ItemsSource="{Binding ContactsGrouped}"
                     IsGroupingEnabled="true"
                     IsPullToRefreshEnabled="True"
                     RefreshCommand="{Binding RefreshCommand}"
                     IsRefreshing="{Binding IsRefreshing}"
                     GroupDisplayBinding="{Binding Key}"
                     GroupShortNameBinding="{Binding Key}"
                     BackgroundColor="Transparent"
                     SelectionMode="Single"
                     HasUnevenRows="true" 
                     SeparatorColor="#cccccc">
        <ListView.ItemTemplate>
            <cr:MyItemTemplate>
        </ListView.ItemTemplate>
    </ListView>

这是我的xaml代码,如果列表中至少有一个项目,它就可以正常工作。通过点击并向下拉项目,列表视图会很好地刷新,但是点击并向下拉项目外部,列表不会导致PullToRefresh发生。这几乎就像ListView有透明的输入,但它的项没有,因此允许它工作

在我的示例图像中,红色的任何内容都显示了一个区域,在该区域中,如果我点击并向下拖动活动指示器,活动指示器将显示良好,并进行刷新。但是,轻触并拖动绿色区域中的任意位置会导致视图不刷新,活动指示器不显示。


我不会显示我的视图模型,因为问题在于视图。我还尝试将背景色设置为红色,检查透明是否导致了问题,遗憾的是事实并非如此。有什么想法吗?

尝试添加VerticalOptions=“StartAndExpand”



此属性告诉视图屏幕应覆盖多少空间。如果不添加它,视图将只覆盖显示所需数据所需的任何长度。

尝试添加VerticalOptions=“StartAndExpand”



此属性告诉视图屏幕应覆盖多少空间。如果您不添加它,那么视图将只覆盖显示所需数据所需的任何长度。

我只是在我这边重复了您的问题。经过一些研究,我发现它是Xamarin.forms 3.5.0中的已知问题,并且它仍然存在于
最新的稳定版本3.6.0.344457

解决方法是将您的Xamarin.forms版本降级为
3.4.0

另外,我在最新的prerelease
4.0.0.394984-pre10
中对其进行了测试,效果良好。所以,我相信这个问题会在下一个版本中得到解决


您可以按此检查流程。

我刚才在我这边重复了您的问题。经过一些研究,我发现它是Xamarin.forms 3.5.0中的已知问题,并且它仍然存在于
最新的稳定版本3.6.0.344457

解决方法是将您的Xamarin.forms版本降级为
3.4.0

另外,我在最新的prerelease
4.0.0.394984-pre10
中对其进行了测试,效果良好。所以,我相信这个问题会在下一个版本中得到解决


您可以按此检查流程。

您是否在此处输入了拼写错误,是否为VerticalOptions?请说明如何将其添加到问题中给出的代码中(复制并粘贴代码并添加建议),并解释VerticalOptions属性设置的作用。这将大大提高您的答案和代表性。感谢您的回复,但ListView确实占据了整个空间。我将背景设置为红色来检查。问题是,当我点击并向下拖动列表视图时,刷新不会发生,但如果我点击并向下拖动列表视图中的某个项目,它会正常工作。因此,如果列表视图为空,则无法刷新。我认为,如果列表视图没有要刷新的项,则您必须再次分配列表项。您是否在此处键入了错误,是否应该是VerticalOptions?请说明如何将其添加到问题中给出的代码中(复制并粘贴代码并添加建议),并解释VerticalOptions属性设置的作用。这将大大提高您的答案和代表性。感谢您的回复,但ListView确实占据了整个空间。我将背景设置为红色来检查。问题是,当我点击并向下拖动列表视图时,刷新不会发生,但如果我点击并向下拖动列表视图中的某个项目,它会正常工作。因此,如果列表视图为空,则无法刷新。我认为,如果列表视图没有要刷新的项,则必须再次分配列表项。从项目外部向下拉是什么意思?如果listView是空的,当您拉动刷新时,您能看到活动指示器吗?下拉项目外部是什么意思?如果listView是空的,当您拉刷新时,您能看到活动指示器吗?我将Xamarin更新为4.5版,问题仍然存在。我将Xamarin更新为4.5版,问题仍然存在
<ListView Grid.Row="1"
    ItemsSource="{Binding ContactsGrouped}"
    IsGroupingEnabled="true"
    IsPullToRefreshEnabled="True"
    RefreshCommand="{Binding RefreshCommand}"
    IsRefreshing="{Binding IsRefreshing}"
    GroupDisplayBinding="{Binding Key}"
    GroupShortNameBinding="{Binding Key}"
    BackgroundColor="Transparent"
    SelectionMode="Single"
    HasUnevenRows="true" 
    SeparatorColor="#cccccc"
    VerticalOptions="StartAndExpand">
        <ListView.ItemTemplate>
            <cr:MyItemTemplate>
        </ListView.ItemTemplate>
</ListView>