0

「img」要素をパネルの子として表示したい。これには画像ウィジェットを使用する必要がありますか? 私は次のことをしています:

Image img = new Image();
img.getElement().getStyle().setWidth(80, Style.Unit.PX);
img.getElement().getStyle().setHeight(80, Style.Unit.PX);

// add it to a panel, which eventually gets added to the root panel.
somePanel.add(img);

// set the url
img.setUrl("stuff/test.png");

これはFFでうまく機能します。モバイルサファリで同じコードを実行すると、画像が読み込まれません。LoadHandler を Image インスタンスに追加しました。FF では、イベント コールバックがトリガーされていることがわかります。しかし、モバイル サファリでは、それらがトリガーされることはありません。

Image をロードするには、RootPanel に Image を追加する必要があることを思い出しましたが、実際にそうしています。他に何が原因でしょうか?PNGリソースが正しく配置されていると確信しています。

ありがとう

4

1 に答える 1

0

経験則: 常に絶対 URL を使用し、場合によってはGWT.getModuleBaseURL()GWT.getHostPageBaseURL()またはGWT.getModuleBaseForStaticFiles()プレフィックスとして使用します。

img.setUrl(GWT.getHostPageBaseURL() + "stuff/test.png");

これは、GWT コードが iframe で実行され、サブフォルダー内から読み込まれ、ホスト ページと iframe URL のどちらを使用して相対 URL を解決するかによって、ブラウザーの動作が異なるためです。

于 2013-01-03T10:15:58.310 に答える