2013-04-29 124 views
5

我想知道...有沒有辦法隱藏GWT標準的水平滾動條ScrollPane我的意思是可能不使用外部CSS樣式等?或者你可以推薦一個更優化的方式來達到效果?GWT - 隱藏水平滾動條

...而關於CSS,現在我嘗試設置這樣的風格對我的ScrollPane

.a-scroll { 
overflow-y: scroll; 
overflow-x: hidden; 
} 

...但似乎不起作用,水平滾動條仍然可見:S那麼是否有解決方法?

感謝

+0

你對*始終*隱藏水平滾動條感興趣嗎? – 2013-04-30 08:59:53

+0

@Andrea Boscolo你是對的。我想隱藏水平,但只有垂直顯示; – user592704 2013-04-30 17:11:27

+0

當你設置該風格時,你是在代碼中爲它設置一個名稱,以便它能夠拾取CSS類'.a-scroll'? – 2013-05-01 17:54:48

回答

6

默認情況下,ScrollPaneloverflow屬性設置爲auto(即滾動條將根據需要顯示)以獲得最多的跨瀏覽器解決方案。所以,由瀏覽器決定何時顯示這樣的滾動條。另外,由於在施工時已經被調用(在initialize()方法中),因此調用scrollPanel.setAlwaysShowScrollBars(false)是無用的。

無論如何,我發現你要求的是known issue

如果你想總是隱藏你需要設置ScrollPanel的滾動元件上的overflow-x: hidden財產水平滾動條(你嘗試過,但這種面板並不是一個簡單的分度,它的overflow屬性)。試着用:

public class MyScrollPanel extends ScrollPanel { 

    public void setAlwaysHideHorizontalScrollBar(boolean alwaysHide) { 
    getScrollableElement().getStyle().setOverflowX(alwaysHide ? Overflow.HIDDEN : Overflow.AUTO); 
    } 
    // ... and the like. 
} 

記住,如果你設置以上,在某些瀏覽器,你將無法再水平滾動。另外overflow-x/y是CSS3屬性,而overflow是CSS2。所以這可能不是你所追求的。

在這種情況下,一些CSS技巧可以幫助隱藏滾動條,但仍然允許滾動,如this

Anothe選項可以使用CustomScrollPanel小部件,該小部件允許通過提供具有零不透明風格的自定義滾動條(不是最好的東西,難熬)來隱藏滾動條。正如問題中提出的,當然,另一種選擇可能是推出自己的基於div的小部件(可能會擴展SimplePanel),並提供所需的所有樣式。

+0

好的,謝謝。我稍後嘗試解決方案並向您報告我的結果 – user592704 2013-05-06 16:33:31

+0

我試過這個解決方案。它工作正常:)謝謝 – user592704 2013-05-15 18:32:59

0

可以隱藏滾動條,如果內容不溢出使用

scrollPanel.setAlwaysShowScrollBars(false);

如果你的滾動條仍然顯示你可能想看看你的內容的容器。

+0

不,我想要支持overflow-y只能垂直滾動它 – user592704 2013-04-30 17:10:27

0

可能有點便宜,但豎線寬度被添加到窗口小部件的寬度,這意味着窗口部件不再顯示完整。因此,顯示的水平條可以滾動查看通過垂直滾動條隱藏的內容。

如果你去

scrollPanel.setAlwaysShowScrollBars(false); 
scrollPanel.setWidth("normalwidth + 8px"); 

應該停止顯示。