Шаблон Android-приложения с ящиком + панелью инструментов + фрагментами

Я опытный разработчик Android, и у меня возникли некоторые проблемы с новой инфраструктурой леденцов, и я хотел бы начать довольно общее обсуждение, которое приведет к хорошему, мощному и рабочему шаблону проекта, от которого, я думаю, многие выиграют. (Я думал, что это будет тривиально, но при каждом подходе я нахожу множество подводных камней)
Представьте, что у меня есть приложение с панелью навигации (фрагмент), которая позволяет мне выбрать один из 5 фрагментов верхнего уровня.

3 из них имеют общее поведение панели инструментов, например, что-то вроде приложения Google Calendar, когда пользователь нажимает на счетчик на панели инструментов, содержимое перемещается вниз и отображается выбор даты над содержимым.

И все же 3 фрагмента должны предоставлять другую кнопку на панели инструментов (которая должна быть установлена ​​​​как ActionBar)

Двум другим не нужно такое обычное поведение, но я напоминаю вам, что им нужно предоставить доступ к панели навигации.

Я хочу, чтобы вопрос был кратким и не загрязнял читающие мысли различными подходами, которые я устал, я чувствую, что это довольно распространенный скелет приложения.

Если у вас есть предложение, вероятно, будет лучше, если вы попробуете его первым.

Примечание. Я настаиваю на использовании панели инструментов, потому что она дает больше свободы разработчикам.


person Shai Levy    schedule 13.02.2015    source источник
comment
У меня была аналогичная ситуация, и вместо этого я использовал фрагмент для панели инструментов. Разве это не даст вам большую свободу разработчика? Вместо панели инструментов (панели действий)?   -  person Droidekas    schedule 18.02.2015
comment
Не совсем, потому что я все еще хочу использовать кнопки действий, раздувать меню и т. Д. Я надеюсь получить универсальное высококачественное решение, а панели инструментов обеспечивают большую гибкость.   -  person Shai Levy    schedule 18.02.2015
comment
Да, было бы неплохо, если бы кто-нибудь написал хороший учебник.   -  person JonasCz    schedule 19.02.2015
comment
Проголосуйте за вопрос, чтобы увеличить вероятность того, что это произойдет   -  person Shai Levy    schedule 19.02.2015
comment
Кроме того, здесь нужен не учебник, а настраиваемый шаблон. Если вы просто возьмете мастер Android Studio для бокового ящика, у вас все равно останется тонна работы, чтобы получить что-то вроде этого   -  person Shai Levy    schedule 19.02.2015
comment
Быстрый взгляд на Github.com привел к следующему: github.com/danigonlinea/NavDra-material.   -  person Mdlc    schedule 19.02.2015
comment
Спасибо, кажется хорошей отправной точкой. у этого вопроса есть открытая награда, поэтому, пожалуйста, напишите этот комментарий как ответ, чтобы вы получили награду, если ничего лучшего не появится :)   -  person Shai Levy    schedule 19.02.2015


Ответы (1)


@Mldc нашел хороший «пример» проекта, как это сделать. Кроме того, несложно динамически добавлять кнопки действий на панель инструментов из фрагментов.

См. пример проекта на github (https://github.com/danigonlinea/NavDra-material. )

Снимок экрана

Существует хорошее руководство по использованию панели инструментов здесь.

Из ссылки: (Вы можете использовать другой файл ресурсов меню в зависимости от того, какой фрагмент отображается)

Наконец, мы вызываем inflateMenu(), чтобы раздуть файл ресурсов меню. Это отобразит элемент действия на панели инструментов.

Нам нужно включить метод setOnMenuItemClickListener() класса Toolbar для прослушивания при выборе пункта меню Action:

Прослушиватель щелчка элемента действия на панели инструментов

Мы присоединяем прослушиватель к нашей автономной панели инструментов. Он прослушивает, когда пункт меню выбран, вызывая свой метод onClick(). Здесь мы включаем всплывающее сообщение, которое будет отображаться при выборе элемента «Действие».

person JonasCz    schedule 22.02.2015