我有一个ListView可以显示化学残留物,问题是当我添加特定的残留物(“ BORRAS”)时,我的色谱柱配置变得很糟糕,如下图所示。
我认为有一种用于设置列宽的术语,如何解决呢?如何使ListView看起来均匀?
我附上我的ListView.XAML:
<ListView
SelectionMode="None"
Margin="5,0,10,10"
IsRefreshing="{Binding IsRefreshing}"
HeightRequest="{Binding AltoListaResiduos}"
SeparatorVisibility="None"
HasUnevenRows="true"
ItemsSource="{Binding ListaResiduos}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal"
VerticalOptions="FillAndExpand">
<Grid>
<Grid.ColumnDefinitions>
<!--NOMBRE RESIDUO-->
<ColumnDefinition Width="3*"/>
<!--CANTIDAD ESTIMADA-->
<ColumnDefinition Width="1.5*"/>
<!--NOMBRE ESTIMADA-->
<ColumnDefinition Width="1.5*"/>
<!--CANTIDAD CONTENEDOR-->
<ColumnDefinition Width="1.5*"/>
<!--NOMBRE CONTENEDOR-->
<ColumnDefinition Width="1.5*"/>
</Grid.ColumnDefinitions>
<Label Text="{Binding NombreResiduo}"
HorizontalOptions="FillAndExpand"
MaxLines="3"
VerticalTextAlignment="Center"
TextColor="{StaticResource das.color.texto}"
VerticalOptions="CenterAndExpand"
Grid.Column="0"
Margin="4,0">
<Label.FontSize>
<OnPlatform x:TypeArguments="x:Double" iOS="11" Android="11" />
</Label.FontSize>
</Label>
<Label Text="{Binding formattedCantidadEstimada}"
HorizontalTextAlignment="End"
FontSize="Small"
VerticalTextAlignment="Center"
TextColor="{StaticResource das.color.texto}"
VerticalOptions="CenterAndExpand"
Grid.Column="1"
Margin="4,0">
</Label>
<Label Text="{Binding Estimado}"
HorizontalTextAlignment="End"
FontSize="Micro"
VerticalTextAlignment="Center"
TextColor="{StaticResource das.color.texto}"
VerticalOptions="CenterAndExpand"
Grid.Column="2"
Margin="4,0">
</Label>
<Label Text="{Binding CantidadContenedor}"
HorizontalTextAlignment="End"
FontSize="Small"
VerticalTextAlignment="Center"
TextColor="{StaticResource das.color.texto}"
VerticalOptions="CenterAndExpand"
Grid.Column="3"
Margin="4,0">
</Label>
<Label Text="{Binding Contenedor}"
HorizontalTextAlignment="End"
FontSize="Micro"
VerticalTextAlignment="Center"
TextColor="{StaticResource das.color.texto}"
VerticalOptions="CenterAndExpand"
Grid.Column="4"
Margin="4,0">
</Label>
</Grid>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我是Xamarin.Forms的新手,希望这个问题对其他人有帮助,如何使我的列表看上去与所有浪费一样? (与名字无关)对我有帮助吗?
答案 0 :(得分:1)
由于您要使用适当的列定义StackLayout
,因此根本不需要Grid
。
这应该有助于您的网格正确地覆盖并填充整个空间
答案 1 :(得分:0)
我感觉到这种情况正在发生,因为您出于某种原因现在正在使用VerticalTextAlignment
,即使Xamarin为VerticalTextAlignment
指出了它,TextAlignment Properties(H,V)在它们中也都有怪异的行为。
获取或设置Text属性的垂直对齐方式。
我宁愿使用YAlign
来代替它,因为它没有这种行为,而且Xamarin对此表示怀疑。
获取或设置Label绑定内Text的垂直对齐方式。
第二,当您使用网格布局时,请定义列和行,因为您已经定义了最大面积,所以永远不要使用AndExpand
类型,并且不会覆盖最大面积。现在LayoutOptions文档说的是CenterAndExpand
或FillAndExpand做的是
一个LayoutOptions结构,用于描述居中并展开的元素。
此外,只需将StackLayout
保留在ViewCell中即可。{p>
Grid
想学习Xamarin表格的最佳做法吗?在此处查看我的博客:https://heartbeat.fritz.ai/techniques-for-improving-performance-in-a-xamarin-forms-application-b439f2f04156