2016-07-12 13 views
1

Ich habe die neue Symbolleiste Suche in meiner App hinzugefügt, die ist super. Ich habe ein paar Fragen dazu.Toolbar Suchanpassung

Wie kann ich das Abbrechen-Symbol (x) auf der rechten Seite der Suchleiste entfernen?

Auch, da der Übergang nicht sehr reibungslos zwischen der App-Symbolleiste und Suche Symbolleiste ist, wie kann ich die animatelayout usw., wenn ich schließe oder zurück zur Suche Symbolleiste?

Antwort

1

Zur Zeit kann keiner von beiden angepasst werden, aber es sollte ziemlich einfach sein, Ihre eigene benutzerdefinierte Suchunterstützung ohne diese durchzuführen. Dies wird in der Toolbar javadoc diskutiert:

Toolbar.setGlobalToolbar(true); 
Style s = UIManager.getInstance().getComponentStyle("Title"); 

Form hi = new Form("Toolbar", new BoxLayout(BoxLayout.Y_AXIS)); 
TextField searchField = new TextField("", "Toolbar Search"); // <1> 
searchField.getHintLabel().setUIID("Title"); 
searchField.setUIID("Title"); 
searchField.getAllStyles().setAlignment(Component.LEFT); 
hi.getToolbar().setTitleComponent(searchField); 
FontImage searchIcon = FontImage.createMaterial(FontImage.MATERIAL_SEARCH, s); 
searchField.addDataChangeListener((i1, i2) -> { // <2> 
    String t = searchField.getText(); 
    if(t.length() < 1) { 
     for(Component cmp : hi.getContentPane()) { 
      cmp.setHidden(false); 
      cmp.setVisible(true); 
     } 
    } else { 
     t = t.toLowerCase(); 
     for(Component cmp : hi.getContentPane()) { 
      String val = null; 
      if(cmp instanceof Label) { 
       val = ((Label)cmp).getText(); 
      } else { 
       if(cmp instanceof TextArea) { 
        val = ((TextArea)cmp).getText(); 
       } else { 
        val = (String)cmp.getPropertyValue("text"); 
       } 
      } 
      boolean show = val != null && val.toLowerCase().indexOf(t) > -1; 
      cmp.setHidden(!show); // <3> 
      cmp.setVisible(show); 
     } 
    } 
    hi.getContentPane().animateLayout(250); 
}); 
hi.getToolbar().addCommandToRightBar("", searchIcon, (e) -> { 
    searchField.startEditingAsync(); // <4> 
}); 

hi.add("A Game of Thrones"). 
     add("A Clash Of Kings"). 
     add("A Storm Of Swords"). 
     add("A Feast For Crows"). 
     add("A Dance With Dragons"). 
     add("The Winds of Winter"). 
     add("A Dream of Spring"); 
hi.show(); 

enter image description here