2016-12-30 2 views
1

J'ai un problème avec ListView, j'ai besoin de montrer cette liste en plein écran. Il y a 55 lignes dans mon ItemSource.Afficher la listeAfficher en mode plein écran [Xamarin.Forms]

Voici mon extrait de code.

<Grid Grid.Row="0" BackgroundColor="#5FB1E0"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"></ColumnDefinition> 
     <ColumnDefinition Width="*"></ColumnDefinition> 
     <ColumnDefinition Width="Auto"></ColumnDefinition> 
    </Grid.ColumnDefinitions> 
    <StackLayout Grid.Column="0" Margin="10"> 
     <Image x:Name="ImageMenu" Source="{local:ImageResource HRiS.images.menu.png}" HeightRequest="40"></Image> 
    </StackLayout> 
    <Label Grid.Column="1" x:Name="LabelHome" FontSize="18" TextColor="White" VerticalTextAlignment="Center"></Label> 
    </Grid> 
    <ListView Grid.Row="1" x:Name="listEmployeeDirectory" HasUnevenRows="True" VerticalOptions="FillAndExpand" 
      IsPullToRefreshEnabled="True" > 
    <ListView.ItemTemplate> 
     <DataTemplate> 
     <ViewCell> 
      <StackLayout Padding="5,10"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto"></ColumnDefinition> 
       <ColumnDefinition Width="*"></ColumnDefinition> 
       </Grid.ColumnDefinitions> 
       <Image Grid.Column="0" HeightRequest="50"> 
       <Image.Source> 
        <UriImageSource Uri="{Binding ProfileImage}" CacheValidity="5" CachingEnabled="true" /> 
       </Image.Source> 
       </Image> 
       <Label Grid.Column="1" Text="{Binding FullName}" HorizontalOptions="StartAndExpand" 
        VerticalTextAlignment="Center" TextColor="Black" FontSize="18" FontFamily="Droid Sans Mono" /> 
      </Grid> 
      </StackLayout> 
     </ViewCell> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
    </ListView> 
</Grid> 

Voici la capture d'écran. enter image description here

+0

Quelle est la définition de la ligne de votre ligne 1? je veux dire la hauteur de cette ligne – Mounika

+0

Je suis désolé, RowDefinition pour la ligne 0 est Auto et la ligne 1 est * (étoile) –

Répondre

0

Ce problème est résolu, je l'avais utilisé la mise en page Grille et maintenant je l'ai changé pour stackLayout et qu'il fonctionne correctement à présent.

Thank you :)

<StackLayout AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All" x:Name="HomeChildContainer"> 
      <Grid BackgroundColor="#297FB8"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="50"> 
        </ColumnDefinition> 
        <ColumnDefinition Width="*"> 
        </ColumnDefinition> 
        <ColumnDefinition Width="Auto"> 
        </ColumnDefinition> 
       </Grid.ColumnDefinitions> 
       <StackLayout Grid.Column="0" Margin="10" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand"> 
        <Image x:Name="ImageMenu" Source="menu.png" HeightRequest="40" /> 
       </StackLayout> 
       <Label Grid.Column="1" x:Name="LabelHome" FontSize="18" TextColor="White" VerticalTextAlignment="Center"> 
       </Label> 
      </Grid> 
      <Entry Grid.Row="1" x:Name="TextSerach" Keyboard="Chat" Placeholder="Search Employee" FontSize="13" FontFamily="Droid Sans Mono" /> 
      <ListView Grid.Row="2" x:Name="listEmployeeDirectory" HasUnevenRows="True" VerticalOptions="FillAndExpand" IsPullToRefreshEnabled="True" HorizontalOptions="FillAndExpand"> 
       <ListView.ItemTemplate> 
        <DataTemplate> 
         <ViewCell> 
          <StackLayout Padding="5,10"> 
           <Grid> 
            <Grid.ColumnDefinitions> 
             <ColumnDefinition Width="Auto"> 
             </ColumnDefinition> 
             <ColumnDefinition Width="*"> 
             </ColumnDefinition> 
            </Grid.ColumnDefinitions> 
            <Image Grid.Column="0" Source="{Binding ProfileImage}" HeightRequest="50"> 
            </Image> 
            <Label Grid.Column="1" Text="{Binding FullName}" HorizontalOptions="StartAndExpand" VerticalTextAlignment="Center" TextColor="Black" FontSize="16" FontFamily="Droid Sans Mono" /> 
           </Grid> 
          </StackLayout> 
         </ViewCell> 
        </DataTemplate> 
       </ListView.ItemTemplate> 
      </ListView> 
     </StackLayout> 
1

Essayez ceci il vous suffit de mettre votre élément

<Grid VerticalOptions="StartAndExpand" HorizontalOptions="CenterAndExpand" > 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <StackLayout Grid.Row="0" Margin="10" HeightRequest="50" BackgroundColor="Gray" Orientation ="Horizontal"> 
     <Image HeightRequest="10"/> 
     <Label Text="Test" FontSize="18" TextColor="White" VerticalTextAlignment="Center"/> 
    </StackLayout> 
    <ListView Grid.Row="1" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" IsVisible="true" ItemTapped="ItemTapped" ItemsSource="{Binding Projects}"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
      <ViewCell> 
       <StackLayout BackgroundColor="#eee" Orientation="Vertical"> 
       <StackLayout Orientation="Horizontal"> 
        <Image Source="{Binding image}"/> 
        <Label Text="{Binding title}" TextColor="#f35e20" /> 
       </StackLayout> 
       </StackLayout> 
      </ViewCell> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
     </ListView> 
    <StackLayout Grid.Row="2" Margin="10" HeightRequest="50" BackgroundColor="Gray" Orientation ="Horizontal"> 
     <Label Text="Test" FontSize="18" TextColor="White" VerticalTextAlignment="Center"></Label> 
    </StackLayout> 
    </Grid> 

enter image description here

+1

Merci, je suis en train d'essayer maintenant. –

+0

Je ne suis toujours pas en mesure d'afficher la liste en plein écran, j'utilise listview dans ContentView –

+0

Utilisez le même code dans votre page ContentPage. – sumeet