Мне нужна панель инструментов, которая может динамически добавлять значки и располагать их на определенных позициях - PullRequest
0 голосов
/ 26 апреля 2019

Я столкнулся с очень специфической проблемой с панелями инструментов.В настоящее время моя команда использует панель инструментов через класс-оболочку, назовем ее WrapToolbar.

Так что WrapToolbar внутренне настроит Toolbar и предоставит некоторые общие Toolbar функции.Доступны такие вещи, как setTitle, getTitle и т. Д.

Этот WrapToolbar также устанавливает значок по умолчанию.Таким образом, во всех случаях использования WrapToolbar этот значок будет доступен для экранов, которым он нужен.

Проблема этого подхода заключается в том, что для экранов, требующих дополнительных значков, необходимо добавить их через XML-меню ифункция onCreateOptionsMenu.

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

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

В настоящее время я борюсь с идеей создания пользовательской оболочки вокругПанель инструментов, которая предоставляет возможность добавлять значки, получать заголовок, устанавливать заголовок и т. Д. Таким образом, мы можем располагать значки в любом порядке и иметь максимальную гибкость в том, как выглядит наша панель инструментов.

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

1 Ответ

1 голос
/ 26 апреля 2019

Меню имеют встроенный порядок, основанный на атрибуте android:menuCategory - вы можете использовать android:menuCategory="secondary", чтобы поместить элемент меню (например, значок по умолчанию) в конец списка - все элементы меню безmenuCategory появится слева от него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...