2014-02-05 3 views
0

Я хочу настроить полосы прокрутки CustomScrollPanel. Я хочу настроить полосы прокрутки, и я хочу включить и отключить вертикальные и горизонтальные полосы прокрутки отдельно.Настроить CustomScrollPanel ScrollBars?

Это MyScrollPanel:

public class MyScrollPanel extends Composite implements HasWidgets { 

    public interface ScrollPanelResources extends CustomScrollPanel.Resources 
    { 
     @Override 
     @Source({ "test/web/client/widgets/ScrollPanel.css", CustomScrollPanel.Style.DEFAULT_CSS }) 
     CustomScrollPanel.Style customScrollPanelStyle(); 
    } 

    public interface HorizontalResources extends NativeHorizontalScrollbar.Resources 
    { 
     @Override 
     @Source({ "test/web/client/widgets/HorizontalScrollbar.css", NativeHorizontalScrollbar.StyleTransparant.DEFAULT_CSS }) 
     NativeHorizontalScrollbar.Style nativeHorizontalScrollbarStyle(); 
    } 

    public interface VerticalResources extends NativeVerticalScrollbar.Resources 
    { 
     @Override 
     @Source({ "test/web/client/widgets/VerticalScrollbar.css", NativeVerticalScrollbar.StyleTransparant.DEFAULT_CSS }) 
     NativeVerticalScrollbar.Style nativeVerticalScrollbarStyle(); 
    } 

    public interface Resources extends ClientBundle { 

     @Source({"test/web/client/widgets/MyScrollPanel.css"}) 
     Css css(); 
    } 

    public interface Css extends CssResource, AppCss { 

     String resizeLayoutPanel(); 
     String customScrollPanel(); 

    } 

    Resources resources; 


    private ResizeLayoutPanel resizeLayoutPanel; 
    private CustomScrollPanel customScrollPanel; 


    public MyScrollPanel() { 
     resources = GWT.create(Resources.class); 
     resources.css().ensureInjected(); 
     resizeLayoutPanel = new ResizeLayoutPanel(); 
     resizeLayoutPanel.setStyleName(resources.css().resizeLayoutPanel()); 


     customScrollPanel = new CustomScrollPanel((MyScrollPanel.ScrollPanelResources) GWT.create(MyScrollPanel.ScrollPanelResources.class)); 
     customScrollPanel.setHorizontalScrollbar(new NativeHorizontalScrollbar((HorizontalResources) GWT.create(HorizontalResources.class)), 
     AbstractNativeScrollbar.getNativeScrollbarHeight()); 
     customScrollPanel.setVerticalScrollbar(new NativeVerticalScrollbar((VerticalResources) GWT.create(VerticalResources.class)), 
     AbstractNativeScrollbar.getNativeScrollbarWidth()); 

     customScrollPanel.addStyleName(resources.css().customScrollPanel()); 


     resizeLayoutPanel.add(customScrollPanel); 
     initWidget(resizeLayoutPanel); 
    } 


    @Override 
    public void add(Widget w) { 
     customScrollPanel.add(w); 
    } 


    @Override 
    public void clear() { 
     customScrollPanel.clear(); 
    } 


    @Override 
    public Iterator<Widget> iterator() { 
     return customScrollPanel.iterator(); 
    } 


    @Override 
    public boolean remove(Widget w) { 
     return customScrollPanel.remove(w); 
    } 




} 

Я нашел этот пост GWT CustomScrollPanel example, но это не решает проблему.

Как настроить полосы прокрутки и включить и отключить вертикальные и горизонтальные полосы прокрутки отдельно?

Как я могу настроить пользовательские полосы прокрутки?

ответ

0

CustomScrollPanel предоставляет два метода:

.getHorizontalScrollbar() 
.getVerticalScrollbar() 

Вы можете показать/скрыть их, когда это необходимо, или применять любые CSS вам нужно.

+0

Как я могу настроить пользовательские полосы прокрутки? – confile

+0

.getElement() на панели, а затем установите overflow-x: скрытый, чтобы скрыть горизонтальную полосу, например. Или myScrollPanel.getHorizontalScrollbar() и скрыть его. –

+0

"видимость: скрытая;" или любой другой CSS, который вы хотите применить. –