3

Хорошо, я пытаюсь понять, что я проиграю, если я использую Toolbar как самоуправляемый ActionBar, а не использовать setSupportActionBar.Панель инструментов как управляемая пользователем ActionBar vs Панель инструментов в качестве управляемой рамки ActionBar

AFAIK, все это ActionBar делает, предоставляет заполнители для логотипа, навигации и пунктов меню, а также позволяет Fragments добавлять/настраивать пункты меню.

Та же функциональность может быть достигнута с использованием Toolbar.setLogo(), Toolbar.setNavigationIcon(), Toolbar.setNavigationOnClickListener() и Toolbar.inflateMenu() apis. Конечно, управление логикой обработки меню до Fragments может быть потеряно, но я думаю, что это не так важно, если Activity знает, что Fragment находится сверху и соответствующим образом изменяет пункты меню.

Я пытаюсь, чтобы убедиться:

  • Если я могу достигнуть каждого ActionBar возможности только с помощью Toolbar и MenuItems (а не с помощью setSupportActionBar()).
  • Уверен, что не имеет исчерпывающего знания о ActionBar apis. Некоторые из ActionBar apis очень сбивают с толку. Используя setHomeAsUp api, чтобы показать значок гамбургера, значок назад и т. Д., Не чувствует себя хорошо. Если кто-то начинает изучать Android сегодня, им даже нужно понять фреймворк ActionBar apis?

Update: В статье Android Design Support Library по разделу CoordinatorLayout and the app bar, я узнал, что новая парадигма приложение бар является заменой парадигмы действия бар. Я думаю, что панель действий скоро будет устаревшей, и мы должны привыкнуть к новой панели приложений , которая охватывает новые впечатления пользователей от дизайна материалов.

+0

Вы правы в своем обновлении относительно Библиотеки поддержки дизайна, но по состоянию на сегодняшний день и AFAIK вам по-прежнему нужен 'getSupportActionBar(). SetDisplayHomeAsUpEnabled (true)' в некоторых случаях: https://stackoverflow.com/q/31475986/ 603270 – shkschneider

ответ

0

Для меня вы правы.

Из AppCompatDelegate исходного кода, метод setSupportActionBar(),

Если задана ненулевого значение методы getSupportActionBar() будет возвращать объект ActionBar, который может быть использован для управления данной панели инструментов, как если бы оно было традиционный бар для оформления декора окон. Меню панели инструментов будет заполнено меню опций , а кнопка навигации будет подключена по стандартуandroid.R.id.home меню выберите действие.

Так что это самые, если не все, преимущества, которые у вас есть. Как вы сказали, легко реализовать навигацию и меню, раздувая через API Toolbar. Тем не менее, я не вижу, что бы вы сделали получить, не звонив setSupportActionBar().

0

ДАДАДА

использованием setSupportToolBar() та же старая Actionbar единственная причина ToolBar является ToolBar для универсальности, так же, как Fragment с является View с, все ложь о том, как вы реализуете вещи , а также старый Actionbar является своего рода расточным и очень ограниченным по отношению к Toolbar

2

Да, вы можете использовать достижения аналогичных возможностей от ActionBar в Toolbar.

В основном разница заключается в Toolbar становится частью View таким образом, мы можем гораздо больше удовольствия, играя с ними, чтобы получить Scrolling Techniques

Вы можете использовать Toolbar отдельно View & выполнять ActionBar так функциональные возможности. Например, в одном из моих приложений я использую 2 Toolbar, который установлен в setSupportActionBar(), а другой используется только для некоторых других функций.

Вывод: Ну, это зависит от ваших требований, если вы хотите использовать Toolbar как самостоятельно или каркас. Тем не менее вы можете использовать его как в обоих.

Я надеюсь, что это хорошо ответит на ваш вопрос.