我在一个页面上有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
的方式。
任何人都可以告诉我如何删除这些空格?
答案 0 :(得分:1)
应用程序开发人员不应将一个ScrollView嵌套在另一个中。 此外,他们应该避免将其他元素嵌套 可以滚动,例如WebView。
来源:官方doc。
嵌套的ScrollViews是灾难,但不要这样做。 哪个控件将在用户交互中滚动?它将完全破坏用户体验,性能等。
这里的空间是您理解的最小问题。你必须重新考虑你的用户界面。例如,您可以通过单个分组ListView替换ScrollView。或者用ScrollView
替换顶级Grid
,其中ListViews
不会互相嵌套。
回到原来的问题,共享XAML
示例有很多不必要的节点,我建议将其展平。例如,不是让多个StackLayouts
通过一个具有多行的Grid
来组织布局。通过这种方式,它将更加高效,您的问题将得到解决,或者至少更容易理解和解决。