Welcome to the .NET MAUI feedback portal. We’re happy you’re here! If you have feedback on how to improve the .NET MAUI, we’d love to hear it!

  • Check out the features or bugs others have reported and vote on your favorites. Feedback will be prioritized based on popularity.
  • If you have feedback that’s not listed yet, submit your own.

Thanks for joining our community and helping improve Syncfusion products!

2
Votes

The SfDataGrid will crash after scrolling horizontally a few times and the scrolling causes lag on Android.

I have 3 columns which consist of two date columns and one text column.

The exception:

Java.Lang.IllegalArgumentException: 'Cannot add a null child view to a ViewGroup'

   at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualVoidMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue* args) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/obj/Release/net7.0/JniEnvironment.g.cs:line 12324

   at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeVirtualVoidMethod(String encodedMember, IJavaPeerable self, JniArgumentValue* parameters) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods_Invoke.cs:line 75

   at Android.Views.ViewGroup.AddView(View child, Int32 index) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/net7.0/android-33/mcw/Android.Views.ViewGroup.cs:line 2065

   at Microsoft.Maui.Handlers.LayoutHandler.Add(IView child) in D:\a\_work\1\s\src\Core\src\Handlers\Layout\LayoutHandler.Android.cs:line 54

   at Syncfusion.Maui.Core.SfView.System.Collections.Generic.ICollection.Add(IView child)

   at Syncfusion.Maui.Core.SfView.Add(View view)

   at Syncfusion.Maui.Core.SfContentView.OnContentChanged(Object oldValue, Object newValue)

   at Syncfusion.Maui.Core.SfContentView.OnContentPropertyChanged(BindableObject bindable, Object oldValue, Object newValue)

   at Microsoft.Maui.Controls.BindableObject.SetValueActual(BindableProperty property, BindablePropertyContext context, Object value, Boolean currentlyApplying, SetValueFlags attributes, Boolean silent) in D:\a\_work\1\s\src\Controls\src\Core\BindableObject.cs:line 535

   at Microsoft.Maui.Controls.BindableObject.SetValueCore(BindableProperty property, Object value, SetValueFlags attributes, SetValuePrivateFlags privateAttributes) in D:\a\_work\1\s\src\Controls\src\Core\BindableObject.cs:line 469

   at Microsoft.Maui.Controls.BindableObject.SetValue(BindableProperty property, Object value, Boolean fromStyle, Boolean checkAccess) in D:\a\_work\1\s\src\Controls\src\Core\BindableObject.cs:line 391

   at Microsoft.Maui.Controls.BindableObject.SetValue(BindableProperty property, Object value) in D:\a\_work\1\s\src\Controls\src\Core\BindableObject.cs:line 365

   at Syncfusion.Maui.Core.SfContentView.set_Content(View value)

   at Syncfusion.Maui.DataGrid.DataGridCellRenderer`2[[Microsoft.Maui.Controls.Label, Microsoft.Maui.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[Syncfusion.Maui.Inputs.SfNumericEntry, Syncfusion.Maui.Inputs, Version=22.1.37.0, Culture=neutral, PublicKeyToken=null]].OnInitializeDisplayView(DataColumnBase dataColumn, Label view)

   at Syncfusion.Maui.DataGrid.DataGridCellRenderer`2[[Microsoft.Maui.Controls.Label, Microsoft.Maui.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[Syncfusion.Maui.Inputs.SfNumericEntry, Syncfusion.Maui.Inputs, Version=22.1.37.0, Culture=neutral, PublicKeyToken=null]].OnPrepareViews(DataColumnBase dataColumn)

   at Syncfusion.Maui.DataGrid.DataGridCellRenderer`2[[Microsoft.Maui.Controls.Label, Microsoft.Maui.Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[Syncfusion.Maui.Inputs.SfNumericEntry, Syncfusion.Maui.Inputs, Version=22.1.37.0, Culture=neutral, PublicKeyToken=null]].PrepareViews(DataColumnBase dataColumn)

   at Syncfusion.Maui.DataGrid.DataColumn.OnInitializeColumnElement(Object rowData, Boolean isInEdit)

   at Syncfusion.Maui.DataGrid.DataColumnBase.InitializeColumnElement(Object rowData, Boolean isInEdit)

   at Syncfusion.Maui.DataGrid.DataRow.UpdateColumn(DataColumnBase dc, Int32 index)

   at Syncfusion.Maui.DataGrid.DataRow.EnsureColumns(VisibleLinesCollection visibleColumnLines)

   at Syncfusion.Maui.DataGrid.RowGenerator.EnsureColumns(VisibleLinesCollection visibleColumns)

   at Syncfusion.Maui.DataGrid.VisualContainer.EnsureItems(Boolean needToRefresh)

   at Syncfusion.Maui.DataGrid.VisualContainer.set_HorizontalOffset(Double value)

   at Syncfusion.Maui.DataGrid.VisualContainer.ExtendedScrollView_Scrolled(Object sender, ScrolledEventArgs e)

   at Microsoft.Maui.Controls.ScrollView.SetScrolledPosition(Double x, Double y) in D:\a\_work\1\s\src\Controls\src\Core\ScrollView.cs:line 93

   at Microsoft.Maui.Controls.ScrollView.Microsoft.Maui.IScrollView.set_HorizontalOffset(Double value) in D:\a\_work\1\s\src\Controls\src\Core\HandlerImpl\ScrollView\ScrollView.Impl.cs:line 21

   at Syncfusion.Maui.Core.Hosting.DataGridScrollViewHandler.NativeHorizontalScrollView_ScrollChange(Object sender, ScrollChangeEventArgs e)

   at Android.Views.View.IOnScrollChangeListenerImplementor.OnScrollChange(View v, Int32 scrollX, Int32 scrollY, Int32 oldScrollX, Int32 oldScrollY) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/net7.0/android-33/mcw/Android.Views.View.cs:line 3852

   at Android.Views.View.IOnScrollChangeListenerInvoker.n_OnScrollChange_Landroid_view_View_IIII(IntPtr jnienv, IntPtr native__this, IntPtr native_v, Int32 scrollX, Int32 scrollY, Int32 oldScrollX, Int32 oldScrollY) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/net7.0/android-33/mcw/Android.Views.View.cs:line 3768

   at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPLIIII_V(_JniMarshal_PPLIIII_V callback, IntPtr jnienv, IntPtr klazz, IntPtr p0, Int32 p1, Int32 p2, Int32 p3, Int32 p4) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:line 418

  --- End of managed Java.Lang.IllegalArgumentException stack trace ---

java.lang.IllegalArgumentException: Cannot add a null child view to a ViewGroup

at android.view.ViewGroup.addView(ViewGroup.java:5007)

at mono.android.view.View_OnScrollChangeListenerImplementor.n_onScrollChange(Native Method)

at mono.android.view.View_OnScrollChangeListenerImplementor.onScrollChange(View_OnScrollChangeListenerImplementor.java:31)

at android.view.View.onScrollChanged(View.java:17059)

at android.view.View.scrollTo(View.java:19031)

at android.widget.HorizontalScrollView.scrollTo(HorizontalScrollView.java:1765)

at android.view.View.scrollBy(View.java:19046)

at crc648a9457dd5f66374f.ExtMauiScrollView.n_onTouchEvent(Native Method)

at crc648a9457dd5f66374f.ExtMauiScrollView.onTouchEvent(ExtMauiScrollView.java:66)

at android.view.View.dispatchTouchEvent(View.java:15026)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3115)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2788)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3121)

at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2802)

at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:498)

at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1896)

at android.app.Activity.dispatchTouchEvent(Activity.java:4262)

at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:70)

at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:456)

at android.view.View.dispatchPointerEvent(View.java:15285)

at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6542)

at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6342)

at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5798)

at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5855)

at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5821)

at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5986)

at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5829)

at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:6043)

at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5802)

at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5855)

at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5821)

at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5829)

at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5802)

at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8842)

at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8793)

at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8762)

at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8965)

at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:267)

at android.os.MessageQueue.nativePollOnce(Native Method)

at android.os.MessageQueue.next(MessageQueue.java:335)

at android.os.Looper.loopOnce(Looper.java:161)

at android.os.Looper.loop(Looper.java:288)

at android.app.ActivityThread.main(ActivityThread.java:7892)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)