Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MvvmCross-将汉堡菜单更改为后退按钮_Android_Xamarin_Xamarin.android_Mvvmcross - Fatal编程技术网

Android MvvmCross-将汉堡菜单更改为后退按钮

Android MvvmCross-将汉堡菜单更改为后退按钮,android,xamarin,xamarin.android,mvvmcross,Android,Xamarin,Xamarin.android,Mvvmcross,我使用的是XPlatformMenus示例Android项目,可在 我想做的是,当用户导航到InfoFragment时,汉堡包菜单图标变为后退箭头,当按下该按钮时,应用程序导航到上一个视图/片段,在本例中是HomeFragment 我在MainActivity上看到了一个名为ShowBackButton的方法,但它不是从任何地方调用的,因此我将其代码添加到BaseFragment的OnCreateView中,在那里它检查showHamburger菜单bool。我添加了一个else,代码大致如下:

我使用的是XPlatformMenus示例Android项目,可在

我想做的是,当用户导航到InfoFragment时,汉堡包菜单图标变为后退箭头,当按下该按钮时,应用程序导航到上一个视图/片段,在本例中是HomeFragment

我在MainActivity上看到了一个名为ShowBackButton的方法,但它不是从任何地方调用的,因此我将其代码添加到BaseFragment的OnCreateView中,在那里它检查showHamburger菜单bool。我添加了一个else,代码大致如下:

                if (ShowHamburgerMenu)
            {
                mainActivity.SupportActionBar?.SetDisplayHomeAsUpEnabled(true);

                DrawerToggle = new MvxActionBarDrawerToggle(
                    Activity, // host Activity
                    mainActivity.DrawerLayout, // DrawerLayout object
                    Toolbar, // nav drawer icon to replace 'Up' caret
                    Resource.String.drawer_open, // "open drawer" description
                    Resource.String.drawer_close // "close drawer" description
                );

                DrawerToggle.DrawerOpened += (sender, e) => mainActivity?.HideSoftKeyboard();
                mainActivity.DrawerLayout.AddDrawerListener(DrawerToggle);
            }
            else
            {
                mainActivity.SupportActionBar?.SetDisplayHomeAsUpEnabled(false);

                DrawerToggle = new MvxActionBarDrawerToggle(
                    Activity, // host Activity
                    mainActivity.DrawerLayout, // DrawerLayout object
                    Toolbar, // nav drawer icon to replace 'Up' caret
                    Resource.String.drawer_open, // "open drawer" description
                    Resource.String.drawer_close // "close drawer" description
                );

                DrawerToggle.DrawerIndicatorEnabled = false;
                //mainActivity.DrawerLayout.SetDrawerLockMode(DrawerLayout.LockModeLockedClosed);

                //mainActivity.SupportActionBar?.SetDisplayHomeAsUpEnabled(false);
                //mainActivity.ShowBackButton();
            }
我设置showmburgermenu=false;在InfoFragment的OnCreateView中。到目前为止,我设法隐藏了汉堡包菜单,但无法显示后退按钮

任何可能有帮助的建议或指导,甚至参考一些文章,都将不胜感激


多谢各位

通过以下方式处理工具栏的NavigationClick事件,实现了这一点:

    private void Toolbar_NavigationClick(object sender, Toolbar.NavigationClickEventArgs e)
    {
        var mainActivity = Activity as MainActivity;
        mainActivity?.OnBackPressed();
    }

通过设置DrawerToggle.DrawerIndicatorEnabled=false,成功地将汉堡包菜单更改为后退(箭头)按钮。但是我如何连接一个事件,让它在单击时导航到上一个片段呢?我正在尝试与您相同的操作,您是在infofragment中添加了这个单击事件,还是在basefragment中添加了它。