Per impostazione predefinita la proprietà overflow
(auto
) viene visualizzata come necessario per ottenere la soluzione più cross-browser. Quindi spetta al browser decidere quando visualizzare tali barre di scorrimento. Inoltre, chiamare scrollPanel.setAlwaysShowScrollBars(false)
è inutile poiché è già stato chiamato in fase di costruzione (nel metodo initialize()
).
In ogni caso ho trovato che quello che stai richiedendo è un known issue.
Se si vuole sempre nascondere la barra di scorrimento orizzontale è necessario impostare la proprietà overflow-x: hidden
sull'elemento scorrevole del ScrollPanel
(come si è tentato, ma tale pannello non è un semplice div con una overflow
proprietà su di esso). Prova con:
public class MyScrollPanel extends ScrollPanel {
public void setAlwaysHideHorizontalScrollBar(boolean alwaysHide) {
getScrollableElement().getStyle().setOverflowX(alwaysHide ? Overflow.HIDDEN : Overflow.AUTO);
}
// ... and the like.
}
Ricorda che, se si imposta la precedenza, in alcuni browser non sarà in grado di scorrere più in senso orizzontale. Anche overflow-x/y
sono proprietà CSS3, mentre overflow
è CSS2. Quindi questo potrebbe non essere quello che stai cercando.
In tal caso alcuni trucchi CSS possono essere utili per nascondere la barra di scorrimento ma consentendo comunque lo scorrimento, ad esempio this.
Un'altra opzione potrebbe essere utilizzare il widget CustomScrollPanel
che consente, tra le altre cose, di nascondere le barre di scorrimento fornendo una barra di scorrimento personalizzata, ad esempio, con uno stile di opacità zero (non la cosa migliore, difficile).
Ovviamente, un'altra opzione potrebbe essere quella di implementare il proprio widget basato su div (magari estendendo SimplePanel
) con tutti gli stili necessari, come suggerito nel problema.
fonte
2013-05-02 13:20:55
Ti interessa * nascondere * sempre la barra di scorrimento orizzontale? –
@Andrea Boscolo hai ragione. Voglio nascondere orizzontale ma ho solo mostrato verticale; – user592704
Quando si imposta quello stile, si imposta un nome per esso nel codice in modo che raccolga la classe CSS '.a-scroll'? –