消除ListViews Xamarin表单之间的差距

时间:2018-05-18 07:15:38

标签: xaml xamarin xamarin.forms

我在一个页面上有3个listViews,我在每个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的方式。

lISTviews gap

任何人都可以告诉我如何删除这些空格?

1 个答案:

答案 0 :(得分:1)

  

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

来源:官方doc

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

这里的空间是您理解的最小问题。你必须重新考虑你的用户界面。例如,您可以通过单个分组ListView替换ScrollView。或者用ScrollView替换顶级Grid,其中ListViews不会互相嵌套。

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