2016-09-19 187 views
4

我想显示一个列表视图,其中包含一些项目,我只是想给这些项目之间的空间位。Xamarin Listview StackLayout项目之间的空间

我谷歌关于这个,但我找不到一个适用于我的答案。 这里有一个解决方案,我发现有同样的结果,我想但没有工作:https://stackoverflow.com/a/30827419/1845593

我使用xamarin窗体2.3.2.127,我想保留这个xaml。

我的XAML代码:

<pages:MainXaml.Content> 
<ListView x:Name="AccountsList" 
      ItemsSource="{Binding Items}" 
      SeparatorVisibility="None" 
      BackgroundColor="Gray"> 
    <ListView.ItemTemplate> 
    <DataTemplate> 
     <ViewCell> 
     <ViewCell.View> 
      <StackLayout BackgroundColor="White" Margin="0,0,0,20" > 
      <Label Text="{Binding Name}" 
       VerticalTextAlignment="Center" 
       LineBreakMode="TailTruncation" 
        /> 
      <Label Text="{Binding Amount}" 
        VerticalTextAlignment="Center" 
        LineBreakMode="TailTruncation"/> 
      </StackLayout> 
     </ViewCell.View> 
     </ViewCell> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
</pages:MainXaml.Content> 

我试图间距,填充和Marging,没有一次成功。

视觉效果/预期:

enter image description here

感谢

回答

2

我发现我需要设置HasUnevenRows =真。然后,我改变到网格,因为我在最后想要一个“>”:

<ListView xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="ConsumerBanking.UserControls.AccountsListView" 
      SeparatorVisibility="None" 
      BackgroundColor="Transparent" 
      HasUnevenRows="True" > 

    <ListView.ItemTemplate> 
    <DataTemplate> 
     <ViewCell> 
     <ViewCell.View> 

      <Grid BackgroundColor="White" Margin="0,0,0,1" > 
      <Grid.RowDefinitions> 
       <RowDefinition Height="*" /> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="Auto" /> 
      </Grid.ColumnDefinitions> 

      <StackLayout Grid.Column="0" Margin="10,5,0,5"> 
       <Label Text="{Binding Name}" 
        VerticalTextAlignment="Center" 
        LineBreakMode="TailTruncation"/> 
       <Label Text="{Binding Amount}" 
        VerticalTextAlignment="Center" 
        LineBreakMode="TailTruncation" 
        FontSize="Large"/> 
      </StackLayout> 

      <Label Text=">" Grid.Column="1" VerticalTextAlignment="Center" Margin="0,0,20,0" 
        FontSize="Large" TextColor="{StaticResource darkGray}"/> 
      </Grid> 
     </ViewCell.View> 
     </ViewCell> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
相关问题