- Home
- Forum
- Xamarin.Forms
- SfNavigationDrawer ToggleDrawer fails because IToggleDrawer cannot be resolved?
SfNavigationDrawer ToggleDrawer fails because IToggleDrawer cannot be resolved?
Hi,
Sometimes for me this code is failing DependencyService.Get<Syncfusion.SfNavigationDrawer.XForms.IToggleDrawer>().ToggleDrawer();
I get the following exception. Are you familie with this? Can I imagive why it may fail? I see in my exception logs often. please let me know
{System.ArgumentException: Handle must be valid.
Parameter name: instance
at Java.Interop.JniEnvironment+InstanceMethods.CallVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method) [0x00017] in /Users/builder/data/lanes/4009/9578cdcd/source/Java.Interop/src/Java.Interop/Java.Interop/JniEnvironment.g.cs:11612
at Android.Runtime.JNIEnv.CallVoidMethod (System.IntPtr jobject, System.IntPtr jmethod) [0x00000] in /Users/builder/data/lanes/4009/9578cdcd/source/monodroid/src/Mono.Android/JNIEnv.g.cs:258
at Com.Syncfusion.Navigationdrawer.SfNavigationDrawer.ToggleDrawer () [0x00043] in <3a5714c2fd5843329de0fa7c826e422b>:0
at Syncfusion.SfNavigationDrawer.XForms.Droid.ToggleDrawer_Android.Syncfusion.SfNavigationDrawer.XForms.IToggleDrawer.ToggleDrawer () [0x00007] in <7cbe0b03d61741178bc3612a9bac0a76>:0
SIGN IN To post a reply.
5 Replies
VA
Vanaja Annasamy
Syncfusion Team
March 7, 2017 12:17 PM UTC
Hi Emil,
We were unable to reproduce the reported issue “ Getting exception while using ToogleDrawer in NavigationDrawer in Android”. We have created sample for your reference. Please download the same from below link.
Link: http://www.syncfusion.com/downloads/support/forum/129243/ze/NavigationDrawer_129243115290297
We were unable to reproduce the reported issue “ Getting exception while using ToogleDrawer in NavigationDrawer in Android”. We have created sample for your reference. Please download the same from below link.
Link: http://www.syncfusion.com/downloads/support/forum/129243/ze/NavigationDrawer_129243115290297
Please run the sample and check whether the issue still persists at your end. If not, please apply your changes and revert the modified sample that would help us to work inline with your requirement.
Regards,
Vanaja R.A.
EM
Emil
March 8, 2017 12:21 PM UTC
Hi,
thank you for quick response. I am not able reproduce this error in a fresh project unfortunately. it seems like again something else in my big project is triggering this error. Until I figure this out and provide you a sample. can you please answer me following questions?
1) what is difference between using?
DependencyService.Get<IToggleDrawer>().ToggleDrawer();and navigationDrawer.ToggleDrawer(); //x:Name="navigationDrawer" in xaml2) IsOpen attrribute is bindable. it works when I bind it using MVVM. but strange thing is It works only 1 time or first time when I raise change on this attribute. why doesnt it work everytime I raise a change event on it.
3) is there anyway I can control ToggleDrawer using MVVM?
EDIT: further what i found in the output is as below
03-08 13:13:17.112 W/View (25770): requestLayout() improperly called
by md5270abb39e60627f0f200893b490a1ade.NavigationPageRenderer{e2adc2e V.E...C.. ......ID 0,72-1080,1776 #4} during second layout pass: posting in next frame
VA
Vanaja Annasamy
Syncfusion Team
March 9, 2017 01:17 PM UTC
Hi Emil,
Query 1: What is difference between using navigationDrawer.ToggleDrawer(); and DependencyService.Get<IToggleDrawer>().ToggleDrawer();
DependencyService:
DependencyService are used to invoke only single instance.
ToggleDrawer:
In case of multiple navigationDawer on multiple pages we can’t invoke the drawer based on DependencyService. So, for this scenario we must use ToggleDrawer method to invoke drawer.
Query 2: IsOpen attrribute is not working properly while binding
We were unable to reproduce the reported issue “IsOpen attrribute is not working properly while binding”. We have created sample for your reference. Please download the same from below link.
Link: http://www.syncfusion.com/downloads/support/forum/129243/ze/NavigationDrawer_IsOpen-378814457
Query 1: What is difference between using navigationDrawer.ToggleDrawer(); and DependencyService.Get<IToggleDrawer>().ToggleDrawer();
DependencyService:
DependencyService are used to invoke only single instance.
ToggleDrawer:
In case of multiple navigationDawer on multiple pages we can’t invoke the drawer based on DependencyService. So, for this scenario we must use ToggleDrawer method to invoke drawer.
Query 2: IsOpen attrribute is not working properly while binding
We were unable to reproduce the reported issue “IsOpen attrribute is not working properly while binding”. We have created sample for your reference. Please download the same from below link.
Link: http://www.syncfusion.com/downloads/support/forum/129243/ze/NavigationDrawer_IsOpen-378814457
Please let us know if you have concern on this.
Regards,
Vanaja R.A.
EM
Emil
March 10, 2017 09:43 AM UTC
Hi Vanaja,
thanks for your quick reply. I confirm that IsOpen works fine. I think that I was missing to set Mode=TwoWay.
Regards,
Emil
VA
Vanaja Annasamy
Syncfusion Team
March 13, 2017 05:37 AM UTC
Hi Emil,
Thank you for your update. We are glad that you have achieved your requirement.
Regards,
Vanaja R.A.
Thank you for your update. We are glad that you have achieved your requirement.
Regards,
Vanaja R.A.
SIGN IN To post a reply.
- 5 Replies
- 2 Participants
-
EM Emil
- Mar 7, 2017 02:30 AM UTC
- Mar 13, 2017 05:37 AM UTC