我如何改变高度在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>
- 如果所有单元格都有相同的大小,设置
ListView.RowHeight
属性视图本身 - 如果您想设置为
ViewCell.Height
然后将ListView.HasUnevenRows
设置为true
(但对性能有一定影响)
正确的现在在2019年是把这个固定高度:
<ListView RowHeight="100" />
如果你不想在所有行中固定高度,使用:
<ListView HasUnevenRows="true" />
只有当ListView.HasUnevenRows
或TableView.HasUnevenRows
属性设置为true
时,ViewCell
的height
才有效。
设置ViewCell的高度应该可以工作。
尝试将StackLayout的VerticalOptions
和HorizontalOptions
设置为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属性来实现你想要的