我有一个带有一些IButton的HStack。我可以使用darg&移动HStack中的按钮。下降。现在想要在IButton最终集成到HStack之后发布通知。我想确定HStack中拖动按钮的位置。 我发现的只是一个DropHander(用于Hstack)和DragRepositionStopHandler(用于按钮)。两者都会在释放鼠标按钮后触发事件。在他的时刻,按钮不在HStack中。 我的问题是:在将项目添加到布局小部件后,是否会有一个EventHander会触发事件?
提前致谢。
Medrod
答案 0 :(得分:0)
DropEvent被触发后,你的Button就位,即将成为HStack的成员。什么都不能阻止这一点。因此,当您收到此事件时,您在HStack所要做的就是检索事件的来源并调用其getAbsoluteLeft和getAbsoluteTop方法。这将为您提供浏览器中Button的位置。如果要在HSTack中接收位置,请分别将它们添加到HStack的Left和Top坐标。可以使用以下内容:
HStack hStack = new HStack();
hStack.addDropHandler(new DropHandler() {
@Override
public void onDrop(DropEvent event) {
Object source = event.getSource();
if (source instanceof BaseWidget) { //This shall cover all Buttons and UI elements.
int buttonLeftPosition = ((BaseWidget) source).getAbsoluteLeft();
int buttonTopPosition = ((BaseWidget) source).getAbsoluteTop();
}
}
});