【发布时间】:2022-01-21 23:22:21
【问题描述】:
我有图像的集合视图。我实现了 const number(5) 个图像,以使用相对布局进行查看。在我的手机上看起来不错。 但是在其他屏幕尺寸不同的手机上,它的图像比我需要的要多。 如何在所有屏幕上制作 const 数量的图像?
这是我的 XAML:
<Grid VerticalOptions="Center" HorizontalOptions="FillAndExpand">
<Grid.RowDefinitions>
<RowDefinition Height="44"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="44"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="44"/>
</Grid.ColumnDefinitions>
<BoxView Color="Red" Grid.Row="0" Grid.Column="0"/>
<BoxView Color="Red" Grid.Row="0" Grid.Column="2"/>
<CollectionView Grid.Row="0" Grid.Column="1" x:Name="clv" ItemsSource="{Binding ImagesArray}" HorizontalOptions="FillAndExpand" VerticalOptions="Center">
<CollectionView.ItemsLayout>
<LinearItemsLayout Orientation="Horizontal" SnapPointsAlignment="Start" SnapPointsType="Mandatory" ItemSpacing="0"/>
</CollectionView.ItemsLayout>
<CollectionView.ItemTemplate>
<DataTemplate>
<RelativeLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Image Source="{Binding ImageName}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=0}"
RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.035, Constant=0}"/>
</RelativeLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</Grid>
【问题讨论】:
-
使用 xamarin.forms 已经有一段时间了,但如果我没记错的话,您应该有一个 onscrolled 事件,您可以将其绑定到一个命令,该命令将您的
ImagesArray值更改为在其中包含正确的值.它不干净,但应该可以解决问题 -
当集合超过5个时,是否应该滚动?
-
@ToolmakerSteve,是的,应该
-
@WenxuLi-MSFT 抱歉,我之前看过这个页面,但没有找到如何做到这一点的信息。你能给我更多的信息吗?
标签: c# xamarin.forms