Как заменить значок (или его стиль) команды, расположенной в строке заголовка? (кодовое имя один) - PullRequest
0 голосов
/ 08 мая 2018

У меня есть приложение под кодовым именем, которое использует значок в заголовке, расположенном справа. Этот значок сигнализирует о существовании уведомлений, не прочитанных текущим пользователем. Также может использоваться для запуска формы уведомлений, где пользователь может читать, отвечать и отправлять уведомления от других пользователей.

Я использовал в своем коде Toolbar.setGlobalToolbar(true); в init() метод Java-кода, который запускает мое приложение. И использовал следующий вызов, чтобы поместить значок уведомления в правой части строки заголовка:

this.notifCommand =
                toolbar.addMaterialCommandToRightBar(
                    "",
                    FontImage.MATERIAL_NOTIFICATIONS_NONE,
                    MY_ICON__SIZE,
                    (ActionEvent e) -> {
                        showIwNotificationForm();
                    }
                ); 

Эта команда выше была написана внутри класса FormBase, который является родителем всех форм моего приложения.

Это работает нормально. У меня есть значок уведомления во всей строке заголовка моего приложения, и пользователь может запускать форму уведомлений и т. Д. ... Приложение заставляет устройство вибрировать, когда пользователь получает уведомления и т. Д., ...

Но мне нужно динамически поменять цвет значка уведомлений в зависимости от его приоритета или даже поменять сам значок уведомлений.

Мне сложно это сделать. Я попробовал несколько подходов без хороших результатов.

Как я могу это сделать?

1 Ответ

0 голосов
/ 09 мая 2018

Вы можете вызвать это в любой момент после добавления команды:

Button b = form.getToolbar().findCommandComponent(notifCommand);

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

...