繁体   English   中英

CarouselView xamarin 表单冲突 Xamarin 表单错误

[英]CarouselView xamarin forms conflicting Xamarin forms error

我在使用 Nuget Package Xamarin.Forms.CarouselView时一直在使用CarouselView 我试图将图像显示为自动滑动。

XAML

<StackLayout Grid.Row="0" Grid.ColumnSpan="4">
    <cv:CarouselView x:Name="MainCarouselView" Position="{Binding PositionIndex, Mode=TwoWay}">
        <cv:CarouselView.ItemTemplate>
            <DataTemplate>
                <Image Source="{Binding .}"></Image>
            </DataTemplate>
        </cv:CarouselView.ItemTemplate>
    </cv:CarouselView >
</StackLayout>

C#

var image = new ObservableCollection<ImageSource>
{
    ImageSource.FromFile("Image1.jpg"),
    ImageSource.FromFile("Image2.jpg"),
    ImageSource.FromFile("Image3.jpg")
};

MainCarouselView.ItemsSource = image;

Device.StartTimer(TimeSpan.FromSeconds(2), (Func<bool>) (() =>
{
    MainCarouselView.Position = (MainCarouselView.Position + 1) % image.Count;
    return true;
}));

在设备或模拟器上运行应用程序后,我收到此错误:

严重性代码描述项目文件行抑制状态错误 CS0433 类型“CarouselView”存在于“Xamarin.Forms.CarouselView, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”和“Xamarin.Forms.Core, Version=2.0”中.0.0,文化=中性,PublicKeyToken=null'

我试图删除 Nuget 包并尝试然后CarouselView保持为空,它也不包含Position的属性。 任何帮助将不胜感激。

编辑:我已经使用 CarouselView.FormsPlugin Xaml 解决了:

<controls:CarouselViewControl x:Name="MainCarouselView"  Grid.Row="0" Grid.ColumnSpan="3" Position="{Binding PositionIndex, Mode=TwoWay}">
                    <controls:CarouselViewControl.ItemTemplate>
                        <DataTemplate>
                            <Image Source="{Binding .}"></Image>
                        </DataTemplate>
                    </controls:CarouselViewControl.ItemTemplate>
              </controls:CarouselViewControl >

并保持cs代码相同。 谢谢你们的帮助。

为 Xamarin 表单使用 CarouselView 控件https://github.com/alexrainman/CarouselView

并确保您遵循以下步骤:

在您的 iOS 和 Android 项目中调用:

主活动.cs :

CarouselView.FormsPlugin.Android.CarouselViewRenderer.Init();

AppDelegate.cs :

CarouselView.FormsPlugin.iOS.CarouselViewRenderer.Init();

在您的 XAML 视图中

xmlns:cv="clr-namespace:CarouselView.FormsPlugin.Abstractions;assembly=CarouselView.FormsPlugin.Abstractions"

你不应该使用Xamarin.Forms.CarouselView插件,因为它已经多年没有更新了......对于那些感兴趣的人,它应该是CarouselPage的优化后继者 - 你可以从 James 的博客中阅读更多关于它的信息发布 出于某种原因,它已被 Xamarin.Forms 团队完全放弃。

Xamarin.Forms.CarouselView 最后更新

目前最好的解决方案是使用 Alex 的 Rainman CarouselView.FormsPlugin插件,这真是太棒了! 但是,我认为目前它在支持 Xamarin.Forms 3.5 方面存在一些问题( github 问题

注意:根据您想要实现的具体目标,您可能需要查看 Sharpnado 的Horizo​​ntalListView轮播布局,我几乎可以肯定它是基于 Alex 的包。

对于未来,请密切关注CollectionView ,它将成为 Xamarin.Forms 4.0 中全新 CarouselView 的基础。 您可以在这篇博文中阅读更多相关信息(并查看预览)

注意:请避免使用 CarouselPage 以及 Xamarin.Forms.CarouselView

CarouselPage 不支持 UI 虚拟化。 因此,如果 CarouselPage 包含太多子元素,性能可能会受到影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM