我尝试实现一个可在不同屏幕上显示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的方式。我无法弄清楚如何修复它。
答案 0 :(得分:1)
原因是您需要在使用CV时指定HeightRequest
的{{1}}和WidthRequest
或垂直\水平选项。使用StackLayout
获得更一致的行为