Последний элемент StackLayout отсутствует или обрезан - PullRequest
0 голосов
/ 04 октября 2019

Я создаю страницу xamarin.forms с одним ListView. Каждый шаблон элемента списка состоит из одной вертикальной StackLayout, которая содержит 3 StackLayout s внутри. Проблема в том, что: Я вижу только первые два макета стека, а третий скрыт, вырезан или пропущен , я не знаю, я его не вижу.

  <ContentPage.Content>
        <ListView x:Name="RoutesList" ItemsSource="{Binding Routes}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell> 
                        <StackLayout BackgroundColor="#eee" Orientation="Vertical" Padding="5,0,0,5" VerticalOptions="FillAndExpand">

                            <StackLayout Orientation="Horizontal" VerticalOptions="StartAndExpand">
                                <Label Text="{Binding Name}" FontAttributes="Bold"></Label>
                                <Label Text="{Binding StartDate}" HorizontalOptions="EndAndExpand"></Label>
                            </StackLayout>

                            <StackLayout Orientation="Horizontal" BackgroundColor="#f94" >
                                <Label Text="{Binding RouteType}" FontAttributes="Bold"></Label>
                            </StackLayout>

                            <StackLayout Orientation="Horizontal" VerticalOptions="EndAndExpand">
                                <Label Text="{Binding CreatorFirstName}" FontAttributes="Bold" HorizontalOptions="EndAndExpand"></Label>
                                <Label Text="{Binding CreatorLastName}" FontAttributes="Bold" HorizontalOptions="End"></Label>
                            </StackLayout>

                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </ContentPage.Content>

Какправильно установить свойства макета, чтобы все макеты стека и содержимое их элементов соответствовало ? Все обязательные свойства являются обычными строками \ датами. Я знаю, что есть GridLayout, но мне интересно, как это сделать, используя StackLayouts?

1 Ответ

1 голос
/ 04 октября 2019

Вам необходимо установить для свойства RowHeight ListView значение, которое будет отображать все элементы. В качестве альтернативы вы можете установить для HasUnevenRows значение true, но это значительно более медленный вариант.

...