使用工具栏在片段中显示后退按钮

时间:2016-08-26 04:48:12

标签: c# android xamarin mvvmcross android-toolbar

我正在使用基于片段的导航,每个片段都有自己的工具栏。

导航到片段时,我希望后退按钮显示在工具栏中。

我已按如下方式覆盖了OnCreateView方法:

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
   var ignored = base.OnCreateView(inflater, container, savedInstanceState);
   var view = this.BindingInflate(_fragmentId, null);
   _toolbar = view.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
   if (_toolbar != null)
   {
      ParentActivity.SetSupportActionBar(_toolbar);
      ParentActivity.SupportActionBar.Title = _title;
      ParentActivity.SupportActionBar.SetDisplayHomeAsUpEnabled(true);
      _drawerToggle = new MvxActionBarDrawerToggle(
         Activity,
         (ParentActivity as MainView).DrawerLayout,
         _toolbar,
         Resource.String.drawer_open,
         Resource.String.drawer_close);

      (ParentActivity as MainView).DrawerLayout.AddDrawerListener(_drawerToggle);
   }

   return view;
}

SetDisplayHomeAsUpEnabled(true)应该根据许多其他堆栈溢出答案将按钮更改为后退按钮,但是这不起作用,如以下屏幕截图所示:

back button not shown

当我导航到片段时,我已经检查过SetDisplayHomeAsUpEnabled(true)行。

作为参考,我使用Xamarin和MvvmCross。

在使用基于片段的导航时,如何将工具栏更改为向上/向后按钮?

2 个答案:

答案 0 :(得分:1)

解决了它:

DrawerToggle以某种方式覆盖了工具栏设置。添加以下行可以解决问题。

//
//
//
const compiler = webpack({
  entry: path.resolve(__dirname, 'js', 'app.js'),
  module: {
    loaders: [
      {
        test: /\.js$/,
        include: [ path.resolve(__dirname, "js") ],
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015', 'stage-0'],
        },
      }
    ],
  },
  output: {filename: '/app.js', path: '/', publicPath: '/js/'}
});
const appServer = new WebpackDevServer(compiler, {
  contentBase: '/public/',
  proxy: {'/graphql': 'http://localhost:8000'},
  publicPath: '/js/',
  stats: {colors: true}
});
//
//
//

答案 1 :(得分:0)

我对Xamarin不太熟悉。尝试使用 ParentActivity.SupportActionBar.SetHomeAsUpIndicator(Resource.Drawable.ic_menu_white_24dp); 设置指标。这可能有所帮助。