В моем приложении я не могу понять, как правильно создать панель инструментов с моим логотипом.Codename One: панель инструментов стиля с изображением
Что я хочу сделать, это похоже на панель инструментов из приложения «Sport1». Example
Так что мне нужна обратная команда в левой части панели инструментов, мой логотип посередине от MultiImage из ресурса и справа от другой команды.
Кроме того, я хочу, чтобы панель инструментов уменьшалась при прокрутке. То, что я пытался до сих пор:
res_theme = r;
Form f = new Form(" ", new BoxLayout(BoxLayout.Y_AXIS));
logo = res_theme.getImage("Logo_Gema_vertikal.png");
f.getToolbar().getTitleComponent().setUIID("toolbar_image");
Style stitle = f.getToolbar().getStyle();
stitle.setBgTransparency(0);
stitle.setBgImage(logo);
stitle.setBackgroundType(Style.BACKGROUND_IMAGE_ALIGNED_CENTER);
stitle.setPaddingUnit(Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS);
stitle.setPaddingTop(5);
Таким образом, это хорошо выглядит так, как она есть. Я не на самом деле нужен титул, вот почему я
Form f = (" ", ...);
Если я не добавить заголовок формы, панель инструментов становится очень маленьким и выжимает фоновое изображение на панели инструментов. Ориентированный на центр логотип на панели инструментов предназначен только для стилизации, поэтому ему не требуется команда. Есть ли способ оставить заголовок? Теперь я установил его полностью прозрачным, но для меня это всего лишь обход.
Кроме того, я полагаю, что вместо того, чтобы устанавливать логотип в качестве фона с центрированным выравниванием, я думаю, что было бы лучше добавить его в заголовок в качестве изображения, но я не знаю, лучше ли это или как это сделать Это.
Теперь я также хочу, чтобы панель инструментов уменьшалась при прокрутке вниз. Я нашел код примера в Codename One Toolbar Documentation, но для меня это не сработало, так как фоновое изображение удаляется.
Это был код для прокрутки анимации:
ComponentAnimation title = f.getToolbar().getTitleComponent().createStyleAnimation("Title", 200);
f.getAnimationManager().onTitleScrollAnimation(title);
В примере, это сработало. С моей панелью инструментов это не так, я понятия не имею, почему. Я также не вижу, где установлен размер «после прокрутки».
Могу ли я добавить туда изображение? Как будто одна панель инструментов перед прокруткой с моим логотипом, а при прокрутке она превращается в меньшую, только с текстовым изображением?
Вот весь мой код, что я пытался сделать его работу:
Form f = new Form(" ", new BoxLayout(BoxLayout.Y_AXIS));
logo = res_theme.getImage("Logo_Gema_vertikal.png");
f.getToolbar().getTitleComponent().setUIID("toolbar_image");
Style stitle = f.getToolbar().getStyle();
stitle.setBgTransparency(0);
stitle.setBgImage(logo);
stitle.setBackgroundType(Style.BACKGROUND_IMAGE_ALIGNED_CENTER);
stitle.setPaddingUnit(Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS, Style.UNIT_TYPE_DIPS);
stitle.setPaddingTop(5);
f.add(new SpanLabel("asdasdasdasd");
ComponentAnimation title = f.getToolbar().getTitleComponent().createStyleAnimation("Title", 200);
f.getAnimationManager().onTitleScrollAnimation(title);
f.show();
Ничего себе, результат тот же, что и ваш путь короче lol. У вас есть подсказка по поводу того, что панель инструментов становится меньше при прокрутке? И есть ли способ установить размер панели инструментов? –
Вы имеете в виду это: https://www.codenameone.com/blog/new-animation-manager.html FYI, если ответ правильный, вы должны его принять, установив флажок рядом с ним –