2016-07-28 3 views
1

Действие из команды поиска не работает, но действие из меню переполнения по-прежнему работает.Команда поиска не работает в сочетании с меню переполнения в Codenameone

Это мой код

getToolbar().addSearchCommand(e -> { 
     String text = (String) e.getSource(); 
     if (text == null || text.length() == 0) { 
      this.undoSearch(this); 
     } else { 
      this.fetchComponents(this, text); 
     } 
     getContentPane().animateLayout(150); 
     this.revalidate(); 
     this.repaint(); 
    }, 4); 



getToolbar().addCommandToOverflowMenu("Enviar", null, (ActionListener) (e) -> { 
     Display.getInstance().scheduleBackgroundTask(() -> { 
      boolean success = this.appView.getService().updateTicket(ticket); 
      if (success) { 
       this.appView.showSuccess("Enviado com sucesso!"); 
      } else { 
       this.appView.showError(new Exception("Ocorreu algum erro ao enviar!")); 
      } 
     }); 
    }); 

Я просто хочу, чтобы сделать samething как это:



enter image description here

+0

Что не работает? Обратите внимание, что при нажатии кнопки поиска заголовок заменяется текстовым полем, в котором вы должны вводить запрос, это происходит? –

+0

Нет, это не происходит, когда я добавляю команду поиска, а позже OverflowMenu –

ответ

1

Просто попытался это и я т работали, как и ожидалось:

Toolbar.setGlobalToolbar(true); 

Form f = new Form("AAAA", BoxLayout.y()); 

f.getToolbar().addSearchCommand(e -> Log.p("Searching: " + e.getSource())); 
f.getToolbar().addMaterialCommandToOverflowMenu("Hi", FontImage.MATERIAL_3D_ROTATION, e -> Log.p("Overflow")); 

f.show();  

enter image description here

enter image description here

+0

Работает только тогда, когда я удаляю код «this.animateLayout (100);» из моего класса –

+0

Что такое «это»? Если это форма, то да, она может столкнуться с анимацией, чтобы установить панель поиска. –

+0

Да, «это» - моя форма, спасибо: D –

 Смежные вопросы

  • Нет связанных вопросов^_^