我如何改变高度在ViewCell

本文关键字:高度 ViewCell 改变 何改变 | 更新日期: 2023-09-27 17:53:55

我试图改变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>

我如何改变高度在ViewCell

  • 如果所有单元格都有相同的大小,设置ListView.RowHeight属性视图本身
  • 如果您想设置为ViewCell.Height然后将ListView.HasUnevenRows设置为true(但对性能有一定影响)

正确的现在在2019年是把这个固定高度:

<ListView RowHeight="100" />

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

<ListView HasUnevenRows="true" />

只有当ListView.HasUnevenRowsTableView.HasUnevenRows属性设置为true时,ViewCellheight才有效。

设置ViewCell的高度应该可以工作。

尝试将StackLayout的VerticalOptionsHorizontalOptions设置为FillAndExpand

只需将Grid的RowDefinition's Height设置为Auto,无论您的标签在哪里包装。这样的:

<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>

Height/Weight属性在Xamarin中大多是只读的。你不能设置ViewCell的大小。

然而,你可以改变你的StackLayout的hightrequest属性来实现你想要的