2016-08-26 5 views
1

Я использую навигацию на основе фрагментов, каждый фрагмент имеет собственную панель инструментов.Кнопка возврата назад в фрагменте с панелью инструментов

При перемещении к фрагменту я хочу, чтобы кнопка возврата отображалась на панели инструментов.

Я переопределен метод 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 (истина), следует изменение кнопки на кнопку назад, в соответствии с множеством других ответов на переполнение стека, однако это не работает, как может быть показано на следующем скриншоте:

back button not shown

Я проверил, что (правда) линии SetDisplayHomeAsUpEnabled поражен, когда я перейти к фрагменту.

Для справки Я использую Xamarin с MvvmCross.

Как изменить панель инструментов на кнопку «вверх/назад» при использовании навигации на основе фрагментов?

ответ

0

Я не очень хорошо знаком с Xamarin. Попробуйте установить индикатор с помощью ParentActivity.SupportActionBar.SetHomeAsUpIndicator (Resource.Drawable.ic_menu_white_24dp);. Это может помочь.

+0

Это не имеет никакого эффекта, оно все еще показывает три горизонтальные линии. – trampster

+0

Заголовок изменяет, как ожидалось, только значок – trampster

0

решаемые его:

DrawerToggle каким-то образом перекрывая настройки панели инструментов. Добавление следующей строки устраняет проблему.

_drawerToggle.DrawerIndicatorEnabled = false;