Xaml 在collectionview xamarin表单中,第一项比其他项宽

Xaml 在collectionview xamarin表单中,第一项比其他项宽,xaml,xamarin,xamarin.forms,collectionview,Xaml,Xamarin,Xamarin.forms,Collectionview,我正在尝试将CollectionView与gridlayout一起使用。但是列表的第一项总是比其他项更宽。我甚至试着提出具体的要求。提前感谢 我建议您在DataTemplate内的第一个网格中设置HeightRequest和/或WidthRequest <CollectionView> <CollectionView.ItemTemplate> <DataTemplate> <Grid HeightReq

我正在尝试将CollectionView与gridlayout一起使用。但是列表的第一项总是比其他项更宽。我甚至试着提出具体的要求。提前感谢


我建议您在DataTemplate内的第一个网格中设置HeightRequest和/或WidthRequest

<CollectionView>
    <CollectionView.ItemTemplate>
        <DataTemplate>
            <Grid HeightRequest="300">
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="340"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <CollectionView Margin="0" ItemsSource="{Binding Projects}" 
                                ItemSizingStrategy="MeasureFirstItem" 
                                Grid.Row="0" Grid.Column="1">
                    <CollectionView.ItemsLayout>
                        <GridItemsLayout Orientation="Vertical"
                                        Span="3"                                                 
                                        VerticalItemSpacing="20" 
                                        HorizontalItemSpacing="20"/>
                    </CollectionView.ItemsLayout>
                    <CollectionView.Footer>
                        <BoxView HeightRequest="0"/>
                    </CollectionView.Footer>
                    <CollectionView.ItemTemplate>
                        <DataTemplate>
                            <BoxView Margin="0" BackgroundColor="Blue" 
                                        HeightRequest="100"  WidthRequest="100"/>
                        </DataTemplate>
                    </CollectionView.ItemTemplate>
                </CollectionView>
            </Grid>
        </DataTemplate>
    </CollectionView.ItemTemplate>
</CollectionView>


此示例还可以帮助您:

此问题无法解决。因此,我删除了gridlayout,并将其替换为嵌套的collectionview。谢谢你联系每一个人。

....

这是一个已知的问题:。你的xamarin版本是什么?一种解决方法是将您的Boxview放入StackLayout中。@NightWolf我在xamarin.forms 5.0版本中测试了您的示例,似乎在HorizontalItemSpacing和VerticalItemSpacing方面存在严重问题,我还发现和。@Shaw我使用的是xamarin v4.8。我尝试了解决方法,但仍然面临这个问题。我只想在gridlayout中显示项目。还有其他方式显示它吗?@CherryBu MSFT lmao,我想我必须切换到其他元素来显示项目XDTry,如果你不介意的话