17

我正在尝试更改 listview 上的 ViewCell,但下面的代码对我不起作用:

<DataTemplate>
    <ViewCell Height="100">
        <StackLayout Orientation="Horizontal">
            <Image Source="{Binding Seller.Thumbnail}}" Aspect="AspectFit" />
            <StackLayout Orientation="Vertical" >
                <Label Text="{Binding CouponName}" FontAttributes="Bold" FontSize="12" />
                <Label Text="{Binding EndOffer}" FontSize="11" />
            </StackLayout>
        </StackLayout>
    </ViewCell>
</DataTemplate>
4

6 回答 6

68
  • ListView.RowHeight如果所有单元格在 ListView 本身上具有相同的大小设置属性
  • 如果你想设置ViewCell.Height,然后设置ListView.HasUnevenRowstrue(但它有一些性能影响)
于 2015-06-30T10:35:25.647 回答
13

现在在 2019 年正确的是把它作为固定高度:

<ListView RowHeight="100" />

如果您不想在所有行中固定高度,请使用:

<ListView HasUnevenRows="true" />
于 2019-05-07T07:57:09.817 回答
12

仅当或属性设置为时height,为设置 才有效。ViewCellListView.HasUnevenRowsTableView.HasUnevenRowstrue

于 2018-01-06T08:09:33.493 回答
5

设置 ViewCell 的高度应该可以。

尝试将 StackLayout 的VerticalOptions和设置HorizontalOptionsFillAndExpand.

于 2015-06-08T01:26:18.560 回答
3

只需将 Grid 的RowDefinitionHeight设置为Auto,无论您的 Label 包装在哪里。像这样:

<ListView ItemsSource="{Binding Gastos}" HasUnevenRows="True" SeparatorVisibility="None">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell >
                <Grid Padding="5">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Label Text="{Binding Id}" VerticalOptions="Start"/>
                    <Label Grid.Column="1" Text="{Binding Descripcion}" LineBreakMode="WordWrap"/>
                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
于 2016-11-30T16:37:06.500 回答
-2

高度/重量属性在 Xamarin 中大多是只读的。您不能设置 ViewCell 的大小。

但是,您可以更改 StackLayout 的 HeightRequest 属性来实现您想要的。

于 2015-06-07T19:15:22.953 回答