2016-12-16 2 views
2

В моем приложении я не могу понять, как правильно создать панель инструментов с моим логотипом.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(); 

ответ

2

В приведенном выше примере, если внешний вид, как вы просто хотите использовать изображение в качестве заголовка вместо стилизации панель с фоном образ.

Просто используйте ((Label)toolbar.getTitleComponent()).setIcon(myImage);.

+0

Ничего себе, результат тот же, что и ваш путь короче lol. У вас есть подсказка по поводу того, что панель инструментов становится меньше при прокрутке? И есть ли способ установить размер панели инструментов? –

+0

Вы имеете в виду это: https://www.codenameone.com/blog/new-animation-manager.html FYI, если ответ правильный, вы должны его принять, установив флажок рядом с ним –