我在gwt app中使用uiBinder创建了一个对话框,它工作正常,除了它无法移动。我不知道它有什么问题,我是否必须设置标题以便移动它?
这是我的代码: myDialog.ui.xml
<g:HTMLPanel ui:field="_glossaryPanel">
<div class="dialogBox">
<h3>content goes here..</h3>
<p>More content...</p>
</div>
</g:HTMLPanel>
myDialog.java
public class MyDialog扩展了DialogBox {
private static MyDialogUiBinder uiBinder = GWT.create(MyDialogUiBinder.class);
interface MyDialogUiBinder extends UiBinder<Widget, MyDialog> {
}
public MyDialog() {
setWidget(uiBinder.createAndBindUi(this));
this.setModal(true);
this.setAutoHideEnabled(true);
}
FooterView.java
public class FooterView extends Composite implements FooterPresenter.Display {
interface Binder extends UiBinder<Widget, FooterView> {
}
private static final Binder BINDER = GWT.create(Binder.class);
@UiField
Anchor _glossary;
@UiHandler("_glossary")
public void handleGlossaryClick(ClickEvent event) {
MyDialog mDialog = new MyDialog();
mDialog.setGlassEnabled(true);
mDialog.setAnimationEnabled(true);
mDialog.center();
mDialog.show();
}
答案 0 :(得分:3)
请参阅http://gwt.google.com/samples/Showcase/Showcase.html#!CwDialogBox您必须使用DialogBox
(而不是PopupPanel
)移动物品。
编辑:
我尝试了你的代码,它对我有用。您是否尝试过单击边框(不是内容!)来拖动对话框?
答案 1 :(得分:0)
GWT对话框不能像桌面窗口那样移动。有一个名为gwt-windows的预计可以让你这样做,但它已经多年没有更新了。
答案 2 :(得分:0)
也许您可以尝试在ui.xml文件中更改根元素类型
从HTMLpanel
到FlowPanel
我看到某个地方说的是这样的话。哪里?我不记得了: - (
在我看来,你的<div clas="dialogBox">
有点令人困惑,也许你会考虑重命名为更个性化的东西,而不是像gwt关键词那样。
答案 3 :(得分:0)
这是解决方案,
VerticalPanel panel;
DialogBox dialogbox;
PopupPanel glass;
VerticalPanel DialogBoxContents;
ClickListener listener;
HTML message;
Button button;
SimplePanel holder;
public void demo()
{
// Create a panel and add it to the screen
panel = new VerticalPanel();
RootPanel.get("demo").add(panel);
panel.setStyleName("table-center");
//
// Create a DialogBox with a button to close it
dialogbox = new DialogBox(false);
dialogbox.setStyleName("demo-DialogBox");
DialogBoxContents = new VerticalPanel();
dialogbox.setText("DialogBox");
message = new HTML("Click 'Close' to close");
message.setStyleName("demo-DialogBox-message");
listener = new ClickListener()
{
public void onClick(Widget sender)
{
dialogbox.hide();
}
};
button = new Button("Close", listener);
holder = new SimplePanel();
holder.add(button);
holder.setStyleName("demo-DialogBox-footer");
DialogBoxContents.add(message);
DialogBoxContents.add(holder);
dialogbox.setWidget(DialogBoxContents);
//
// Add a button to the demo to show the above DialogBox
listener = new ClickListener()
{
public void onClick(Widget sender)
{
dialogbox.center();
}
};
button = new Button("Show DialogBox", listener);
panel.add(button);
}
查看“DEMO AT” http://examples.roughian.com/index.htm#Widgets~DialogBox
答案 4 :(得分:0)
“我是否必须设置标题以便移动它?” 是。
对话框.setText(“对话框”); 你可以只拖动字幕div; 拖动标题div时,整个对话框将移动。