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