Search code examples
listviewxamarinxamarin.formsprismstacklayout

How to set ListView At the end of page


I already use VerticalOptions="EndAndExpand" then also left space at the end anyone has an idea about this. I already try collection view in that also same issue I faced

This is my page

<StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
         <ffimageloading:CachedImage Margin="10" x:Name="ImageData"
                         IsVisible="{Binding IsImageURL}"
                         IsEnabled="{Binding IsImageURL}"
                         Source="{Binding ImageURL}"
                         HeightRequest="150" WidthRequest="200"
                         HorizontalOptions="CenterAndExpand"
                         VerticalOptions="CenterAndExpand"
                         BackgroundColor="Transparent" Aspect="Fill" >
         </ffimageloading:CachedImage>

         <ListView x:Name="QuizzesAnsList" BackgroundColor="Blue"
                      ios:ListView.RowAnimationsEnabled="false"
                      VerticalOptions="EndAndExpand"
                      HorizontalOptions="FillAndExpand"
                      SelectionMode="None"
                      VerticalScrollBarVisibility="Never"
                      HasUnevenRows="True"
                      ItemsSource="{Binding QuizzesQuestionAnswersList}"
                      SeparatorVisibility="None" >
                    <ListView.ItemTemplate >
                        <DataTemplate>
                            <ViewCell>
                                <StackLayout VerticalOptions="Fill" Orientation="Horizontal" Spacing="0" Margin="0,5,0,0">

                                    <Frame  VerticalOptions="Fill" BackgroundColor="{Binding BackgroundColor}" BorderColor="{Binding BorderColor}" HasShadow="False"  HorizontalOptions="FillAndExpand"  CornerRadius="2"  Padding="5" >
                                        <StackLayout Orientation="Horizontal" Spacing="0" VerticalOptions="Fill" HorizontalOptions="FillAndExpand" >
                                            <material:MaterialLabel Margin="5" Text="{Binding AnswerText}" HorizontalTextAlignment="Center" FontSize="17" Style="{Binding FontType,Mode=TwoWay}"                                                                  VerticalTextAlignment="Center" HorizontalOptions="FillAndExpand" TextColor="White" FontAttributes="Bold" />
                                        </StackLayout>
                                    </Frame>

                                    <StackLayout.GestureRecognizers>
                                        <TapGestureRecognizer
                                                            Command="{Binding Path=BindingContext.SelectedQuizeAnswer, Source={x:Reference QuizzesAnsList}}"
                                                            CommandParameter="{Binding .}"/>
                                    </StackLayout.GestureRecognizers>
                                </StackLayout>
                            </ViewCell>
                        </DataTemplate>
                    </ListView.ItemTemplate>
         </ListView>
</StackLayout>

Solution

  • I found the problem in your code. Actually, The ListView has taken the entire page. If your List items static you set the HeightRequest="100" in your ListView Or your List Items is Dynamic Use BindableLayout

    <StackLayout x:Name="QuizzesAnsList" BindableLayout.ItemsSource="{Binding QuizzesQuestionAnswersList}"  VerticalOptions="EndAndExpand" HorizontalOptions="FillAndExpand">
                <BindableLayout.ItemTemplate>
                    <DataTemplate>
                        <StackLayout VerticalOptions="Fill" Orientation="Horizontal" Spacing="0" Margin="0,5,0,0">
                                        <Frame  VerticalOptions="Fill" BackgroundColor="{Binding BackgroundColor}" BorderColor="{Binding BorderColor}" HasShadow="False"  HorizontalOptions="FillAndExpand"  CornerRadius="2"  Padding="5" >
                                            <StackLayout Orientation="Horizontal" Spacing="0" VerticalOptions="Fill" HorizontalOptions="FillAndExpand" >
    
                                                <material:MaterialLabel Margin="5" Text="{Binding AnswerText}" HorizontalTextAlignment="Center" FontSize="17" Style="{Binding FontType,Mode=TwoWay}"
                                                                            VerticalTextAlignment="Center" HorizontalOptions="FillAndExpand" TextColor="White" FontAttributes="Bold" />
                                            </StackLayout>
    
                                        </Frame>
    
                                        <StackLayout.GestureRecognizers>
                                            <TapGestureRecognizer
                                                                Command="{Binding Path=BindingContext.SelectedQuizeAnswer, Source={x:Reference QuizzesAnsList}}"
                                                                CommandParameter="{Binding .}"/>
                                        </StackLayout.GestureRecognizers>
                                    </StackLayout>
    
                    </DataTemplate>
                </BindableLayout.ItemTemplate>
            </StackLayout>