我正在使用Google Web Toolkit Incubator中的SliderBar小部件。默认情况下,此小组件会侦听某些键盘事件,例如左箭头。我想知道是否有办法避免小部件监听这些事件。
我正在使用UiBinder并尝试使用函数unsinkEvents但没有任何反应。这是代码片段:
@UiField(provided = true) SliderBar slbRotate;
public NewViewImpl() {
slbRotate = new SliderBar(-180,180);
slbRotate.setStepSize(10);
slbRotate.setCurrentValue(0);
slbRotate.setWidth("478px");
slbRotate.setHeight("22px");
slbRotate.unsinkEvents(Event.KEYEVENTS);
initWidget(binder.createAndBindUi(this));
}
我还在unsinkEvents函数的参数中使用了KeyCodes.KEY_LEFT,但也没有用。
感谢。
答案 0 :(得分:0)
使用
unsinkEvents
功能
我创建了一个简短的例子来展示基础知识:
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.TextBox;
public class ExtendedTextBox extends TextBox {
public ExtendedTextBox() {
sinkEvents(Event.KEYEVENTS);
}
@Override
public void onBrowserEvent(Event event) {
Window.alert("keypress");
}
public void unSinkKeyEvent(){
unsinkEvents(Event.KEYEVENTS);
}
}
此示例创建一个TextBox,每当您按下一个键时,弹出两个MessageBoxes(一个用于keyup的keydown)。如果调用unSinkKeyEvent函数,则此行为将停止。
因此,如果你不想在SliderBar小部件上有特定的行为,你也可以调用unsinkEvents函数来指定你不想拥有的事件(只需查看帮助)
此致 斯蒂芬