2017-08-15 75 views
1

这里的底部是我试过到目前为止:添加房客到ListView.Header

<ListView RowHeight="50"> 
    <ListView.Header> 
     <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="49" /> 
      <RowDefinition Height="1" /> 
     </Grid.RowDefinitions> 
     <Label Grid.Row="0" BackgroundColor="#EEEEEE" Text="ABC" /> 
     <BoxView Grid.Row="1" BackgroundColor="#999" HeightRequest="1" /> 
     </Grid> 
    </ListView.Header> 
    <ListView.ItemTemplate> 

我希望看到一个顶部区域的颜色EEE和低于身高1和颜色的线999

但是,EEE颜色和999线之间有一个白色区域,高度约为3-4 px。

有没有人知道为什么它有这个以及如何改变它,使999行直接出现在EEE颜色区域的下方?

回答

3

(对不起,我英文不好)

我想这是因为电网的默认值RowSpacing(6)。设置<Grid RowSpacing="0">摆脱它。

查看更多here在Grid类的源代码。

尽管如此,我建议您使用StackLayout(与Spacing="0")而不是Grid,如果您的布局完全如您所示。就像这样:

<StackLayout Spacing="0"> 
    <Label BackgroundColor="#EEEEEE" 
      Text="ABC" 
      HeightRequest="49"/> 
    <BoxView BackgroundColor="#999" 
      HeightRequest="1" /> 
</StackLayout> 

结果(先用网,第二,StackLayout):

Sample

+0

有了StackLayout,我还可以指定高度吗? – Alan2

+0

当然。但在这种情况下,它将在元素中指定,例如'Label HeightRequest =“49”',并且可能需要调整垂直文本对齐。 –

+0

可以举出一个XAML看起来像什么的例子。我会接受你的回答 – Alan2

2

使用上面的行负利润,因此你的“ABC”行使用的底边距-6

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="49" /> 
     <RowDefinition Height="1" /> 
    </Grid.RowDefinitions> 
    <Label Grid.Row="0" BackgroundColor="#EEEEEE" Text="ABC" Margin="0,0,0,-6" /> 
    <BoxView Grid.Row="1" BackgroundColor="#999" HeightRequest="1" /> 
</Grid>