1

J'ai un problème dans mon ListView sur iOS. Je ne peux pas l'ajuster à tous les modèles iOS, ex: mettre HeightRequest = "855" sur mon iPhone 7, il correspond déjà correctement, sinon sur l'iPhone 5 et plus petit mon ListView à partir d'un scrow. donc je veux que mon ListView s'ajuste automatiquement à la taille de l'écran.Comment ajuster ma listview dans les formulaires ios Xamarin

<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> 
+1

Ne pas utiliser le 'HeightRequest' pour qui utilisent le' VerticallOptions = « FillAndExpand » ' – apineda

Répondre

0

Pour développer un peu plus.

HeightRequest est utilisé lorsque vous souhaitez définir une taille fixe pour un élément. Xamarin fera de son mieux pour accomplir cela. D'autre part, lorsque vous voulez que votre taille soit relative, utilisez le VerticalOptions et le HorizontalOptions. Ces deux propriétés prendront une structure LayoutOptions et la valeur par défaut est Fill (sans extension).

Cette structure a deux ensembles de propriétés, ceux que j'appelle "régulier"

  • Centre

  • Démarrer

  • Fin

  • Fll

Et ceux qui "se développe"

  • CenterAndExpand

  • StartAndExpand

  • EndAndExpand

  • FillAndExpand

Vous pouvez lire mo à propos de ces here.

Ce dernier FillAndExpand prendra tout l'espace disponible dans l'orientation où il est utilisé. C'est celui que vous devez utiliser dans votre ListView pour le rendre aussi grand que l'écran

Hope this helps.-