public メソッドを使用して、子を親に動的に追加しようとしています。コンストラクター内から呼び出すとcanvasContainer.add(Canvas.createIfSupported())
、意図したとおりに機能しますが、insertLayerAt()
メソッド内から呼び出すと、DOM に追加されず、黙って失敗します。
別のパネルを親要素として、別のウィジェットを子要素として使用しようとしましたが、問題は解決しません。
私はこれに間違って近づいていますか?コンストラクターの外側から add メソッドを使用してはならないというものは何も見つかりませんが、それよりも単純なものが欠けている可能性があります。
私のコードは以下のとおりです.GWT 2.4とMVP4Gを使用しています
public class CanvasView extends Composite implements
CanvasPresenter.ICanvasView {
LayoutPanel canvasContainer;
@Inject
public CanvasView()
{
Document document = Document.getInstance();
Dimension d = document.getDimension();
canvasContainer = new LayoutPanel();
canvasContainer.setPixelSize(d.width, d.height);
canvasContainer.setStyleName("CanvasController");
initWidget(canvasContainer);
}
public void insertLayerAt(int zpos, Layer layer)
{
Canvas canvas = Canvas.createIfSupported();
if (canvas != null)
{
GWT.log("Canvas is supported.", null);
canvasContainer.add(canvas);
}else{
GWT.log("Canvas isn't supported.", null);
}
}
}