Xamarin.Forms CarouselView不显示ListViews

时间:2017-10-28 02:27:45

标签: c# .net xamarin xamarin.forms

我尝试实现一个可在不同屏幕上显示2个ListView的CarouselView。但是,当我启动应用程序时,似乎没有任何事情发生,屏幕保持空白。我将ListViews缩减为基本的字符串列表,但我仍然无法使CarouselView正常工作。我做错了什么?

XAML:

<StackLayout x:Name="Layout" Spacing="0">
    <forms:CarouselView x:Name="CarouselView"
                        ItemSelected="CarouselView_OnItemSelected"
                        ItemsSource="{Binding lists}">
        <forms:CarouselView.ItemTemplate>
            <DataTemplate>
                <ListView/>
            </DataTemplate>
        </forms:CarouselView.ItemTemplate>
    </forms:CarouselView>
</StackLayout>

C#:

    lists = new ObservableCollection<ListView>
    {
        new ListView
        {
            ItemsSource = new ObservableCollection<string>{
                "test",
                "test"
            }
        },
        new ListView
        {
            ItemsSource = new ObservableCollection<string>{
                "test",
                "test"
            }
        }
    };

当我在CarouselView中使用Labels而不是ListViews时,代码按预期工作。所以问题可能在于我为CarouselView定义ItemSource的方式。我无法弄清楚如何修复它。

1 个答案:

答案 0 :(得分:1)

原因是您需要在使用CV时指定HeightRequest的{​​{1}}和WidthRequest或垂直\水平选项。使用StackLayout获得更一致的行为