2016-04-28 85 views
3

我一直試圖理清與獲取Xamarin形式(IOS)Xamarin窗體ListView行高度不正確

呈現一個ListView時計算的行高問題,這是我的XAML

<ListView.ItemTemplate> 
    <DataTemplate> 
     <ViewCell> 
      <Grid Padding="20"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="Auto" /> 
       </Grid.ColumnDefinitions> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="*" /> 
       </Grid.RowDefinitions> 
       <StackLayout Orientation="Vertical" Grid.Row="0"> 
        <Label Text="{Binding Path=Name}" FontSize="18" /> 
        <Label Text="{Binding Path=Teaser}" TextColor="Gray" /> 
       </StackLayout> 
       <StackLayout Grid.Column="1" Grid.Row="0"> 
        <Image Source="{Binding Path=ImageUrl}" WidthRequest="100" Aspect="AspectFill" 
          HeightRequest="100" /> 
       </StackLayout> 
      </Grid> 
     </ViewCell> 
    </DataTemplate> 
</ListView.ItemTemplate> 

但在這裏是它得到如何在模擬器中呈現的截圖

(我綁定到10行相同的數據,這就是爲什麼每一行看起來是一樣的)

enter image description here

正如你所看到的,行高不會被正確計算的行內容。

我可以爲ListView設置固定的RowHeight,但這並不好,因爲rowheight對於不同的設備需要不同。

任何人都可以幫忙嗎?

+1

組your_list.HasUnevenRows = TRUE;和your_list.RowHeight = 60; –

+0

啊非常感謝。 HasUnevenRows = true修正了它(我假設你只在行不均勻時纔將它設置爲true)。我沒有設置行高,因爲它需要根據設備的大小而有所不同 –

+0

好吧,我會以答案的形式發佈 –

回答

7

your_list.HasUnevenRows = true; 

和/或

your_list.RowHeight = 60;