我正在尝试使用Xamarin.forms在stacklayout中呈现一个collectionview。但是collectionview没有显示任何数据。我正在使用Visual Studio for Mac在ios上进行测试。
我正在尝试学习在iOS中使用collectionview和Xamarin.Forms基础知识
我遵循了Microsoft git repo中针对xamarin.forms的最基本示例: https://github.com/xamarin/xamarin-forms-samples/blob/master/UserInterface/CollectionViewDemos/CollectionViewDemos/Views/Layout/HorizontalListTextPage.xaml
我已将简单示例复制到Mainpage.xaml文件中的我自己的项目中,但是只有在移除如下所示的外部Stacklayout时,collectionview数据才可见
<?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:local="clr-namespace:demo" x:Class="demo.MainPage">
<CollectionView ItemsLayout="{x:Static ListItemsLayout.HorizontalList}">
<CollectionView.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Baboon</x:String>
<x:String>Capuchin Monkey</x:String>
<x:String>Blue Monkey</x:String>
<x:String>Squirrel Monkey</x:String>
<x:String>Golden Lion Tamarin</x:String>
<x:String>Howler Monkey</x:String>
<x:String>Japanese Macaque</x:String>
<x:String>Mandrill</x:String>
<x:String>Proboscis Monkey</x:String>
<x:String>Red-shanked Douc</x:String>
<x:String>Gray-shanked Douc</x:String>
<x:String>Golden Snub-nosed Monkey</x:String>
<x:String>Black Snub-nosed Monkey</x:String>
<x:String>Tonkin Snub-nosed Monkey</x:String>
<x:String>Thomas's Langur</x:String>
<x:String>Purple-faced Langur</x:String>
<x:String>Gelada</x:String>
</x:Array>
</CollectionView.ItemsSource>
</CollectionView>
</ContentPage>
我添加了Forms.SetFlags(“ CollectionView_Experimental”);到该学员
即使我的mainpage.xaml中存在stacklayout,我也希望数据可见。
更新 如果我显式设置了高度,则collectionview数据可见,但是此解决方案中的任何示例都没有做到这一点 但是在我链接到的示例布局中,它们没有明确设置高度,这适用于此处找到的所有示例 https://github.com/xamarin/xamarin-forms-samples/tree/master/UserInterface/CollectionViewDemos
如果我启动示例解决方案,它们将按预期运行,但是如果我将示例复制到自己的解决方案中,则需要显式设置高度。
更新 如果将MainPage包裹在导航页中,则所有内容都可以正常运行
MainPage = new NavigationPage(new MainPage());
但使用默认值
MainPage = new MainPage()
一无所获