首页 > 解决方案 > 消除 ListViews Xamarin 表单之间的差距

问题描述

listViews我在一页上有 3个,我在每个之间都有一个差距listview,我不知道为什么它会得到空格。

这是我的代码:

<Grid>
    <ScrollView >
        <StackLayout>
            <ListView HasUnevenRows="True" 
                      SeparatorColor="Red" 
                      ItemsSource="{Binding GetAssignedTask}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <StackLayout Orientation="Horizontal" 
                                         BackgroundColor="White"  >
                                <Image Source="rsz_pnglogocom.png"  />
                                <StackLayout>
                                    <Label Text="Task 1" 
                                           TextColor="Black" 
                                           FontSize="Medium" />
                                    <StackLayout Orientation="Horizontal">
                                        <Label Margin="0,0,70,0" 
                                               Text="{Binding dtStart,StringFormat='{0:MMMM dd, yyyy}'}"  
                                               TextColor="Red" 
                                               HorizontalOptions="Center"/>
                                        <Label Text="Waqas" 
                                               TextColor="Black" 
                                               HorizontalOptions="End"/>
                                    </StackLayout>
                                </StackLayout>
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <StackLayout>
                <Label Text="test"/>
            </StackLayout>
            <ListView HasUnevenRows="True" 
                      SeparatorColor="Red" 
                      ItemsSource="{Binding GetAssignedTask}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <StackLayout Orientation="Horizontal" 
                                         BackgroundColor="LightPink"  >
                                <Image Source="rsz_pnglogocom.png"  />
                                <StackLayout>
                                    <Label Text="Task 1" 
                                           TextColor="Black" 
                                           FontSize="Medium" />
                                    <StackLayout Orientation="Horizontal">
                                        <Label Margin="0,0,70,0"
                                               Text="{Binding dtStart,StringFormat='{0:MMMM dd, yyyy}'}"  
                                               TextColor="Red" 
                                               HorizontalOptions="Center"/>
                                        <Label Text="Waqas" 
                                               TextColor="Black" 
                                               HorizontalOptions="End"/>
                                    </StackLayout>
                                </StackLayout>
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
    </ScrollView>
</Grid>

我需要摆脱这些空间并listview一个接一个地显示,您可以在下面查看它的显示方式listviews

列表视图差距

谁能告诉我如何删除这些空格?

标签: xamlxamarinxamarin.forms

解决方案


应用程序开发人员不应将一个 ScrollView 嵌套在另一个中。此外,他们应该避免嵌套其他可以滚动的元素,例如 WebView。

来源:官方文档

嵌套的 ScrollViews 是灾难,只是不要那样做。哪个控件将在用户交互时滚动?它将完全破坏用户体验、性能等。

如您所知,这里的空间是最小的问题。你必须重新考虑你的 UI。例如,您可以将 ScrollView 替换为单个分组的 ListView。ScrollView或者用a替换顶层,Grid其中 2 个ListViews不相互嵌套。

回到您最初的问题,共享XAML示例有很多不必要的节点,我建议将其展平。例如,不是让多个StackLayouts组织通过一个Grid多行的布局来组织。这样,它的性能会更高,您的问题将得到解决,或者至少更容易理解和解决。


推荐阅读