Search code examples
xamarinxamarin.androidmaterialdrawer

Navigation Drawer back button Xamarin


I am using this binding for this awesome Material Drawer Library by MikePenz.

I have implemented the Navigation Drawer with this library and I have also managed to change the hamburger menu to the back arrow when I go level deep. Now I have some problems to get the back arrow to work correctly. When I click on the back arrow, rather than going back to the previous page, it opens up the navigation drawer.

After looking into the original library, I have identified, the following code is responsible to manage the back arrow button. I would appreciate , if someone can help me a bit to write this listener code in C#.

.withOnDrawerNavigationListener(new Drawer.OnDrawerNavigationListener() {
                @Override
                public boolean onNavigationClickListener(View clickedView) {
                    //this method is only called if the Arrow icon is shown. The hamburger is automatically managed by the MaterialDrawer
                    //if the back arrow is shown. close the activity
                    AdvancedActivity.this.finish();
                    //return true if we have consumed the event
                    return true;
                }
            })

Here is the binding libray that I use : MaterialDrawer-Xamarin

And this is the link to the original Library : MaterialDrawer


Solution

  • Try something like this:

    var result = new DrawerBuilder()
            .WithActivity(this)
            .AddDrawerItems(
              //Add some items here
              new DividerDrawerItem()
            )
            .WithOnDrawerNavigationListener(this);
    

    and implement Drawer.IOnDrawerNavigationListener in your activity like this:

    public bool OnNavigationClickListener(View clickedView)
    {
        this.Finish();
        return true;
    }