Как отобразить коллекцию внутри стека - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь отобразить коллекцию внутри стека, используя Xamarin.forms. Но коллекция не показывает никаких данных. Я тестирую на IOS с использованием Visual Studio для Mac.

Я пытаюсь научиться использовать collectionview и основы Xamarin.Forms с ios

Я следовал самому простому примеру из Microsoft git repo для xamarin.forms, найденному здесь: https://github.com/xamarin/xamarin-forms-samples/blob/master/UserInterface/CollectionViewDemos/CollectionViewDemos/Views/Layout/HorizontalListTextPage.xaml

Я скопировал простой пример в свой собственный проект в файле Mainpage.xaml, но данные коллекционного вида видны только при удалении внешнего Stacklayout, как показано ниже

 <?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.

UPDATE Если я установил высоту явно, данные коллекции будут видны, но это не сделано ни в одном из примеров в этом решении. но в макетах примеров я ссылаюсь на то, что они не устанавливают высоту явно, это относится ко всем примерам, найденным здесь https://github.com/xamarin/xamarin-forms-samples/tree/master/UserInterface/CollectionViewDemos

и если я запускаю пример решения, они все работают, как и ожидалось, но если я копирую примеры в свое собственное решение, мне нужно явно указать высоту.

UPDATE Если MainPage обернута в навигационную страницу, все работает как ожидалось

 MainPage = new NavigationPage(new MainPage()); 

но по умолчанию

MainPage = new MainPage() 

ничего не сто

...