Как настроить мой список в формах ios Xamarin

У меня проблема в ListView на iOS. Я не могу настроить его для всех шаблонов iOS, например: положите HeightRequest = "855" на мой iPhone 7, он уже подходит, иначе на iPhone 5 и уменьшите мой ListView из scrow. поэтому я хочу, чтобы мой ListView автоматически настраивался под размер экрана.

  <ListView x:Name="listView"
            CachingStrategy="RecycleElement"
            ItemsSource="{Binding FeedItems}"
            HasUnevenRows="True"
            AbsoluteLayout.LayoutFlags="All"
            AbsoluteLayout.LayoutBounds="0,0,1,1" HeightRequest="855">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Grid Padding="5">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="70"/>
                                <ColumnDefinition Width="5"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <StackLayout HeightRequest = "60" WidthRequest="60">
                                <Image x:Name="Image"  Source="{Binding Image}" Scale="1.0" Aspect="AspectFill" VerticalOptions="FillAndExpand"/>
                         </StackLayout>
                            <StackLayout Grid.Column="2" Spacing="4"  VerticalOptions="Center">
                               <Label Text="{Binding Category}" TextColor="White"  FontSize="Small" LineBreakMode="NoWrap" BackgroundColor="{Binding Color_category}"/>
                                <Label Text="{Binding PublishDate}" TextColor="#666666" FontSize="Small" LineBreakMode="NoWrap"/>
                                <Label Text="{Binding Title}" TextColor="#234084" Font="Bold" FontSize="Small" LineBreakMode="WordWrap"/>
                            </StackLayout>
                        </Grid>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

person José    schedule 26.07.2017    source источник
comment
Не используйте HeightRequest для этого, используйте VerticallOptions="FillAndExpand"   -  person pinedax    schedule 26.07.2017


Ответы (1)


Чтобы расширить еще немного.

HeightRequest используется, когда вы хотите определить фиксированный размер элемента. Xamarin сделает все возможное, чтобы справиться с этим. С другой стороны, если вы хотите, чтобы ваш размер был относительным, вы используете VerticalOptions и HorizontalOptions. Эти два свойства будут иметь структуру LayoutOptions и значение по умолчанию для это заливка (без расширения).

Эта структура имеет два набора свойств, которые я называю "обычными".

  • Центр

  • Начинать

  • Конец

  • Fll

И те, что «расширяются»

  • CenterAndExpand

  • StartAndExpand

  • EndAndExpand

  • FillAndExpand

Подробнее об этих можно прочитать здесь .

Последний FillAndExpand займет все доступное пространство в той ориентации, в которой он используется. Это тот, который вы должны использовать в своем ListView, чтобы сделать его размером с экран

Надеюсь это поможет.-

person pinedax    schedule 26.07.2017