我在GWT的主页上有一个按钮。单击此按钮时,将使用新的GWT元素更新屏幕,而不发送RPC调用。但是在这两个屏幕之间,有很长一段时间。所以我想为它制作一个加载指示器(如动画gif)。
我该怎么做?
答案 0 :(得分:10)
GWT类PopupPanel有一个可选的“玻璃面板”,可以阻止与下面页面的交互。
final PopupPanel popup = new PopupPanel(false, true); // Create a modal dialog box that will not auto-hide
popup.add(new Label("Please wait"));
popup.setGlassEnabled(true); // Enable the glass panel
popup.center(); // Center the popup and make it visible
答案 1 :(得分:2)
嗨,我实施了他。我在加载另一个屏幕之前附加了一个加载图像。下面是代码:
public class Utility {
private static LoadingDlg dlg=new LoadingDlg(false, true);
public static void showLoading(){
if(count <= 0){
dlg.center();
count = 1;
}
else
count++;
}
public static void hideLoading(){
if(count <= 1){
dlg.hide();
count = 0;
}
else{
count--;
}
}
}
public LoadingDlg(boolean autoHide, boolean modal) {
super(autoHide, modal);
this.setGlassEnabled(true);
this.setTitle("Press Esc Key to Hide.");
this.setGlassStyleName("loadingstyle");
FlowPanel hp=new FlowPanel();
hp.setStyleName("loadingImg");
this.getElement().getStyle().setZIndex(500);
this.setWidget(hp);
}
同样的Css:
.loadingstyle{
display: block !important;
visibility: visible !important;
z-index: 500 !important;
background-color: #000;
opacity: 0.3;
filter: alpha(opacity=30);
}
.loadingImg{
background-image:url(images/loadingimage.gif);
background-repeat:no-repeat;
display: block;
height: 24px;
width: 161px;
}
你必须在images文件夹中添加一个loadingimage.gif,然后相应地调用showLoading和hideLoading函数。