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!>
Thanks for joining our community and helping improve Syncfusion products!
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
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)