Articles in this section
Category / Section

How to resolve SfListView not rendering issue in iOS, macOS and UWP in Xamarin Forms

2 mins read

Xamarin does not load the renderer assemblies, by default, in iOS and UWP projects. Hence, to solve this, you need to manually load it by calling the Init method of SfListViewRenderer class in the respective projects as mentioned below.

iOS Project

Call the SfListViewRenderer.Init() in the FinishedLaunching overridden method of the AppDelegate class after the Xamarin.Forms Framework initialization, and before the LoadApplication is called as demonstrated in the following code example:

using Syncfusion.XForms.iOS.EffectsView;
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    …
    global::Xamarin.Forms.Forms.Init();
    SfListViewRenderer.Init();
    SfEffectsViewRenderer.Init();  //Initialize only when effects view is added to Listview.
    LoadApplication(new App());
    …
}

 

Note:

When EffectsView is applied to ListView by adding Visual as "Material", it is necessary to initialize EffectsViewRenderer in iOS.

 

UWP Project

Call the SfListViewRenderer.Init() in the MainPage constructor before the LoadApplication is called as demonstrated in the following code example:

public MainPage()
{
    …
    SfListViewRenderer.Init();
    LoadApplication(new App());
    …
}

 

macOS Project

Call the SfListViewRenderer.Init() in the DidFinishLaunching override method of the AppDelegate class after calling the Xamarin.Forms Framework and LoadApplication initialization.:

public override void DidFinishLaunching(NSNotification notification)
{
    Forms.Init();
    LoadApplication(new App());
    SfListViewRenderer.Init();
    …
}

 

ReleaseMode Issue in UWP Platform

The known Framework issue in UWP platform is the custom controls will not render when deployed the application in Release Mode.

The above problem can be resolved by initializing the ListView assemblies in App.xaml.cs in UWP project as in the following code snippet:

// In App.xaml.cs
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
    …
    rootFrame.NavigationFailed += OnNavigationFailed;
    // you'll need to add ‘using System.Reflection;’
    List<Assembly> assembliesToInclude = new List<Assembly>();
    //Now, add all the assemblies your app uses
    assembliesToInclude.Add(typeof(SfListViewRenderer).GetTypeInfo().Assembly);
    // replaces Xamarin.Forms.Forms.Init(e);        
    Xamarin.Forms.Forms.Init(e, assembliesToInclude);
    …     
}

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments
Please sign in to leave a comment
Access denied
Access denied