有没有一种方法可以使用 MvvmCross 在 Xamarin Forms 中使用嵌套的 CollectionView?
Is there a way to work with nested CollectionViews in Xamarin Forms with MvvmCross?
我正在 Xamarin Forms/MvvmCross 项目中构建一个页面,我需要多个 CollectionView(至少,我是这么认为的)。
在屏幕顶部,我有一个水平的 CollectionView。在第一个视图下,我添加了一个垂直的 CollectionView。
问题:我想在页面上向下滚动,以便第一个 CollectionView 消失,第二个更明显(特别是在小屏幕上,只有第二个 CollectionView 的第一项在页面顶部可见)。
我希望第一个和第二个 CollectionView 作为一个单元在页面上滚动。一些建议会很棒!
到目前为止,我已经尝试将第二个(垂直的)CollectionView 更改为可绑定的 StackLayout,但项目不会出现,而且这种方法感觉不对。
<ScrollView>
<StackLayout Spacing="0">
<SearchBar
mvx:La.ng="Placeholder SearchBar"
Margin="0,0,0,30"
TextColor="{StaticResource White}"
CancelButtonColor="{StaticResource White}"
PlaceholderColor="{StaticResource White_30}"
BackgroundColor="{StaticResource BackgroundColor}"/>
<Label mvx:La.ng="Text Artists" FontFamily="FiraSans#600" FontSize="16" TextColor="#FF6C6E81" Margin="0,0,0,20"/>
<CollectionView
x:Name="MyCollectionView"
ItemsSource="{mvx:MvxBind FavoriteArtists}"
HeightRequest="250" >
<CollectionView.ItemsLayout>
<GridItemsLayout
Orientation="Horizontal"
VerticalItemSpacing="1"
HorizontalItemSpacing="10" />
</CollectionView.ItemsLayout>
<CollectionView.EmptyView>
<StackLayout>
<ActivityIndicator Color="DimGray" IsRunning="True" HeightRequest="50" />
</StackLayout>
</CollectionView.EmptyView>
<CollectionView.ItemTemplate>
<DataTemplate>
<templates:FavArtistsTemplate/>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
<Label mvx:La.ng="Text Recent" FontFamily="FiraSans#400" FontSize="14" TextColor="#FF6C6E81" Margin="0,0,0,8"/>
<CollectionView
x:Name="MyCollectionView2"
ItemsSource="{mvx:MvxBind RecentlyPlayedItems}">
<CollectionView.EmptyView>
<StackLayout>
<ActivityIndicator Color="DimGray" IsRunning="True" HeightRequest="50" />
</StackLayout>
</CollectionView.EmptyView>
<CollectionView.ItemTemplate>
<DataTemplate>
<templates:MediaItemTemplate/>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</StackLayout>
</ScrollView>
我希望第一个和第二个 CollectionView 作为一个单元在页面上滚动。一些建议会很棒!
你把2个水平的CollectionViews
放在ListView
Header中放在Grid
或StackLayout
:)
更清楚:
您使用的是 2 个水平 CollectionViews
和 1 个 ListView
(仅垂直),而不是 2 个水平 CollectionViews
和 1 个垂直 CollectionView
。在ListView
的Header中,你把2个水平的CollectionViews
放在一个Grid
或StackLayout
中。
我正在 Xamarin Forms/MvvmCross 项目中构建一个页面,我需要多个 CollectionView(至少,我是这么认为的)。 在屏幕顶部,我有一个水平的 CollectionView。在第一个视图下,我添加了一个垂直的 CollectionView。 问题:我想在页面上向下滚动,以便第一个 CollectionView 消失,第二个更明显(特别是在小屏幕上,只有第二个 CollectionView 的第一项在页面顶部可见)。 我希望第一个和第二个 CollectionView 作为一个单元在页面上滚动。一些建议会很棒!
到目前为止,我已经尝试将第二个(垂直的)CollectionView 更改为可绑定的 StackLayout,但项目不会出现,而且这种方法感觉不对。
<ScrollView>
<StackLayout Spacing="0">
<SearchBar
mvx:La.ng="Placeholder SearchBar"
Margin="0,0,0,30"
TextColor="{StaticResource White}"
CancelButtonColor="{StaticResource White}"
PlaceholderColor="{StaticResource White_30}"
BackgroundColor="{StaticResource BackgroundColor}"/>
<Label mvx:La.ng="Text Artists" FontFamily="FiraSans#600" FontSize="16" TextColor="#FF6C6E81" Margin="0,0,0,20"/>
<CollectionView
x:Name="MyCollectionView"
ItemsSource="{mvx:MvxBind FavoriteArtists}"
HeightRequest="250" >
<CollectionView.ItemsLayout>
<GridItemsLayout
Orientation="Horizontal"
VerticalItemSpacing="1"
HorizontalItemSpacing="10" />
</CollectionView.ItemsLayout>
<CollectionView.EmptyView>
<StackLayout>
<ActivityIndicator Color="DimGray" IsRunning="True" HeightRequest="50" />
</StackLayout>
</CollectionView.EmptyView>
<CollectionView.ItemTemplate>
<DataTemplate>
<templates:FavArtistsTemplate/>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
<Label mvx:La.ng="Text Recent" FontFamily="FiraSans#400" FontSize="14" TextColor="#FF6C6E81" Margin="0,0,0,8"/>
<CollectionView
x:Name="MyCollectionView2"
ItemsSource="{mvx:MvxBind RecentlyPlayedItems}">
<CollectionView.EmptyView>
<StackLayout>
<ActivityIndicator Color="DimGray" IsRunning="True" HeightRequest="50" />
</StackLayout>
</CollectionView.EmptyView>
<CollectionView.ItemTemplate>
<DataTemplate>
<templates:MediaItemTemplate/>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</StackLayout>
</ScrollView>
我希望第一个和第二个 CollectionView 作为一个单元在页面上滚动。一些建议会很棒!
你把2个水平的CollectionViews
放在ListView
Header中放在Grid
或StackLayout
:)
更清楚:
您使用的是 2 个水平 CollectionViews
和 1 个 ListView
(仅垂直),而不是 2 个水平 CollectionViews
和 1 个垂直 CollectionView
。在ListView
的Header中,你把2个水平的CollectionViews
放在一个Grid
或StackLayout
中。