Xamarin.forms 表单-不滚动显示所有项目

Xamarin.forms 表单-不滚动显示所有项目,xamarin.forms,Xamarin.forms,我使用scrollview来显示我的主页,它包含许多控件,包括2个CollectionView,我的问题是当用户向下滚动主页时,一旦到达CollectionView,他就会被CollectionView的滚动条卡住,我想要所有的项目(大约40个项目)显示在CollectionView中,不带滚动条,这样用户就可以继续滚动主页,并通过CollectionView的项目向下面的控件滚动。 我试图为CollectionView设置一个固定的高度,但没有成功。 另外,我发现一篇文章谈到使用Bindabl

我使用scrollview来显示我的主页,它包含许多控件,包括2个CollectionView,我的问题是当用户向下滚动主页时,一旦到达CollectionView,他就会被CollectionView的滚动条卡住,我想要所有的项目(大约40个项目)显示在CollectionView中,不带滚动条,这样用户就可以继续滚动主页,并通过CollectionView的项目向下面的控件滚动。 我试图为CollectionView设置一个固定的高度,但没有成功。
另外,我发现一篇文章谈到使用BindableLayout,但我在某处读到它可能比CollectionView慢得多,而且它不支持项目布局(我使用span=“2”在每行上显示两个项目相邻)

您可以使用FlexLayout的BindableLayout。检查以下代码

<ScrollView Orientation="Vertical" BackgroundColor="LightBlue">

        //.. other elements
 
        <FlexLayout  BindableLayout.ItemsSource="{Binding XXX}" Direction="Row"
                AlignItems="Start" Wrap="Wrap" JustifyContent="SpaceAround" AlignContent="SpaceAround" >
            <BindableLayout.ItemTemplate>
                <DataTemplate>

                   //replace it with your data template
                    <StackLayout HeightRequest="100" WidthRequest="180" BackgroundColor="Red" Margin="10"  >

                        <Label Text="{Binding .}" TextColor="Black" BackgroundColor="Green" /> 

                    </StackLayout>

                </DataTemplate>
            </BindableLayout.ItemTemplate>
        </FlexLayout>

    </ScrollView> 

//.. 其他要素
//用数据模板替换它
注: 这样,您需要将每个项目的宽度设置为小于屏幕宽度的一半。否则,项目将扭曲到下一行


jpg能说千言万语。@Shaw,我包括了一幅图像。您可以将CollectionView的
滚动方向设置为水平,这样当用户滚动到CollectionView时就不会出现滚动问题。@LucasZhang MSFT,我在XAMLI中找不到实现这一点的方法。我在使用BindableLayout+FlexLayout设置自己的布局时遇到了一些问题,我注意到了一些滞后,所以我的客户决定改用Syncfusion的ListView。太好了!快乐编码:)