Codenmae один, как сделать, чтобы добавить сдвиг поверх значка и разместить их на панели инструментов - PullRequest
2 голосов
/ 26 мая 2020

это то, что я пробовал

notification = Command.create("", materialIcon(FontImage.MATERIAL_NOTIFICATIONS, 3, 0xffffff), evt -> {
       ////....
    });
    mainForm.getToolbar().addCommandToRightBar(notification);

that's what I have managed to do so far

Я хочу достичь этого ниже

enter image description here

Ответы [ 2 ]

2 голосов
/ 27 мая 2020

Отметить произвольную кнопку довольно просто: https://www.codenameone.com/blog/badging-arbitrary-components.html

Button chat = new Button("");
FontImage.setMaterialIcon(chat, FontImage.MATERIAL_CHAT, 7);

FloatingActionButton badge = FloatingActionButton.createBadge("33");
hi.add(badge.bindFabToContainer(chat, Component.RIGHT, Component.TOP));

Кнопка панели инструментов инкапсулирована и не должна иметь значка.

Чтобы решить эту проблему, просто не добавляйте команды в область заголовка. Вместо этого создайте полностью настраиваемую область заголовка, добавив собственную метку заголовка и кнопку со значком, оформленную в любом стиле. Вы можете сделать это, используя setTitleComponent вместо setTitle и избегая метода add*Command для этих кнопок.

0 голосов
/ 27 мая 2020

Вот так мне удалось разместить иконку на панели инструментов

Button notifiations = new Button("");
    notifiations.setIcon(materialIcon(FontImage.MATERIAL_NOTIFICATIONS, 3, ColorUtil.WHITE));

    FloatingActionButton badge = FloatingActionButton.createBadge("2");
    badge.setUIID("Notification-Badge");
Container notiCnt = BoxLayout.encloseX(badge.bindFabToContainer(notifiations, Component.RIGHT, Component.TOP));

mainForm.getToolbar().add(BorderLayout.EAST, FlowLayout.encloseRightMiddle( notiCnt));
...