如何在Xamarin.Forms中设置ListView行高

时间:2014-09-16 13:56:13

标签: ios iphone ipad xamarin xamarin.forms

我想使用下面提到的代码和绑定在iOS设备的XAML文件中设置ListView的高度。

1)我已经使用了可观察的集合来通知属性值何时更新并且它正在收到通知并设置正确的值但是它没有反映在iOS模拟器或设备中但是适用于Android& Windows Phone设备。

<ListView  Grid.Row="2" Grid.Column="1"  ItemsSource="{Binding QuestionAnswerList,Mode=TwoWay}"  SelectedItem="{Binding SelectedData,Mode=TwoWay}"                   
                 HasUnevenRows="true" RowHeight="{Binding Custom_height,Mode=TwoWay}"  BackgroundColor="Silver" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
    <ListView.ItemTemplate>

2)我试图静态设置列表视图的行高,但这也不起作用。

3)我没有给出任何高度并设置Grid RowDefinition height =“*”但是它也没有设置ListView的高度,而是重叠下一个ListView行的细节。

感谢。

2 个答案:

答案 0 :(得分:15)

iOS上,当您将ListView.HasUnevenRows设置为true时,您还必须为每个单元格属性设置Cell.Height ,如渲染器无法从内容中推断出来。

您也可以像在示例中一样使用ListView.RowHeight,甚至是行。在这种情况下,请勿设置ListView.HasUnevenRows(或将其设置为false)。

答案 1 :(得分:0)

尝试使用StackLayout代替ListView:

<StackLayout BindableLayout.ItemsSource="{Binding Items}">
    <BindableLayout.ItemTemplate>
        <DataTemplate>
            <StackLayout Margin="0,0,0,5">
                <Label Text="{Binding Name}"/>
            </StackLayout>
        </DataTemplate>
    </BindableLayout.ItemTemplate>
</StackLayout>