GWT中的滑动条

8

有人知道gwt中是否有滑动条吗?我只找到了GWT孵化器中的一个,但很遗憾它已经被弃用了。

5个回答

8

一个导出的副本可在Github上获得 - https://github.com/jbarop/gwt-slider-bar - Gautam

3
现在您可以直接使用HTML5滑块,像这样:
<input ui:field="sliderInput" type="range" />

@UiField InputElement sliderInput;

sliderInput.setAttribute("min", "1");
sliderInput.setAttribute("max", "100");
sliderInput.setAttribute("step", "10");

Event.sinkEvents(sliderInput, Event.ONCHANGE);
Event.setEventListener(sliderInput, new EventListener() {
    @Override
    public void onBrowserEvent(Event event) {
        // sliderInput.getValue();
    }
});

请问您能否提供一个例子,以编程方式生成 sliderInput,而无需使用 UIBinder,并在稍后将其添加到某些容器小部件中? - tombo_189
@tombo_189,请查看GWT DOMImpl类中的createInputElement方法。复制它,并将其更改为"type"为"range"。 - Craigo
如果我将ui:field="sliderInput"指定给<input>,GWT编译器会返回一个错误:[ERROR] Template Page.ui.xml没有Page#sliderInput的ui:field属性。 - Magallo
@Magallo 这很奇怪。您应该能够将ui:field添加到ui.xml中的任何元素中。这是在Java中访问它们的方法。您可能想要查看文档http://www.gwtproject.org/doc/latest/DevGuideUiBinder.html - Craigo

3
标准的GWT库中没有滑动条。但是,GWT孵化器的替代品在David Chandler的示例项目listwidget中(他在Google GWT团队中)。对于这个示例项目,他还需要一个滑动条。他使用了GWT孵化器的源代码并进行了更新。
你可以将这些源代码放入自己的项目中(它有一个Apache许可证)。这可能不是最优的方案,但对我来说起作用了。这里是源代码的链接http://code.google.com/p/listwidget/source/browse/#svn%2Ftrunk%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgwt%2Fgen2%2Fclient(为方便起见,这里还有一个链接到项目:http://code.google.com/p/listwidget/)。

0
您可以使用smartgwt中的滑块。您只需要注意css定义即可,对于Firefox,它应该是这样的:
#isc_4 td{
   font-size:0px;
}

这个滑块不是HTML5滑块,也不支持触摸,但它可以正常工作。


我需要一个可触摸的滑块(用于iPad)。目前使用jQuery的滑块不可触摸,但似乎有解决方法。 - mkn

-2

正在编写一个使用jQuery滑块的新库来解决这个问题。作者将在代码稳定时发布它 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接