OnElemnetChanged方法不存在,无法覆盖Xamarin中的CollectionViewRenderer

问题描述 投票:0回答:1

我需要在Xamarin表单中为CustomCollectionViewRenderer创建自定义控件,因为我需要在Xamarin表单中显示诸如Pinterest应用之类的图像集合。但是没有[[OnElementChanged可以覆盖CollectionViewRenderer。我在这里做错什么了吗?

我正在使用

    Xamarin.Forms NuGet软件包版本为4.0.2.70
  • Visual Studio Community 2019 for Mac
版本8.3.4(内部版本8)
  • NuGet
  • 版本:5.3.0.6192
  • Xamarin.iOS
  • 版本:13.4.0.2(Visual Studio社区)
  • Xamarin.Android
  • 版本:10.0.3.0(Visual Studio社区) [assembly: ExportRenderer(typeof(CollectionView), typeof(CustomCollectionViewRenderer))] namespace MyProj.Droid { public class CustomCollectionViewRenderer : CollectionViewRenderer { public CustomCollectionViewRenderer(Context context) : base(context) { } protected override void OnElementChanged(ElementChangedEventArgs<ItemsView> elementChangedEvent) { base.OnElementChanged(elementChangedEvent); if (elementChangedEvent.NewElement != null) { StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.Vertical); SetLayoutManager(manager); } } } }
    xamarin xamarin.forms xamarin.android uicollectionview collectionview
    1个回答
    0
    投票
    我只是使用以下配置在我的VS19 for MAC中执行了相同的操作,并且一切正常

    using Android.Content; using Android.Support.V7.Widget; using Test.Droid.PlatformRenderer; using System.ComponentModel; using Xamarin.Forms; using Xamarin.Forms.Platform.Android; [assembly: ExportRenderer(typeof(CollectionView), typeof(CustomCollectionViewRenderer))] namespace Test.Droid.PlatformRenderer { public class CustomCollectionViewRenderer : CollectionViewRenderer { public CustomCollectionViewRenderer(Context context) : base(context) { } protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs changedProperty) { base.OnElementPropertyChanged(sender, changedProperty); } protected override void OnElementChanged(ElementChangedEventArgs<ItemsView> elementChangedEvent) { base.OnElementChanged(elementChangedEvent); if (elementChangedEvent.NewElement != null) { StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.Vertical); SetLayoutManager(manager); } } } }

    VS配置:

    Xamarin.Forms NuGet软件包版本为4.5.0.356

    Visual Studio Professional 2019 for Mac版本8.3.4(内部版本8)

    NuGet版本:5.3.0.6192

    Xamarin.iOS版本:13.4.0.2

    Xamarin.Android版本:10.0.3.0

    © www.soinside.com 2019 - 2024. All rights reserved.