RootPanel.get("foo").add(button)
을 사용하여 모듈 entrypoint html 페이지의 요소에 Buttons가 연결되어 있습니다. 이후 LayoutPanel을 만들고 RootLayoutPanel.get.add(layoutpanal)
을 사용하여 첨부하면 버튼을 클릭 할 수 없습니다. 이것은 괜찮습니다. 그런 다음 레이아웃 패널을 제거하고 제거하거나 RootLayoutPanel
을 지우면 버튼을 클릭 할 수 없습니다.GWT에서 RootLayoutPanel을 어떻게 지우시겠습니까?
아이디어를 삭제하는 방법은 무엇입니까? 단계를 놓친 적이 있습니까? 아니면 RootLayoutPanel
을 사용했다면 페이지의 RootPanel
을 사용해 본 적이 없습니까?
샘플 코드 :
public void onModuleLoad(){
final LayoutPanel lp1=new LayoutPanel();
ClickPanel ping=new ClickPanel("Ping");
ping.getElement().getStyle().setBackgroundColor("#fdd");
ping.addClickHandler(new ClickHandler(){
@Override
public void onClick(ClickEvent event){
Window.alert("Ping!!!");
//lp1.removeFromParent();
//RootLayoutPanel.get().remove(lp1);
//RootLayoutPanel.get().removeFromParent();
RootLayoutPanel.get().clear();
}
});
ClickPanel bong=new ClickPanel("Bong");
bong.getElement().getStyle().setBackgroundColor("#ddf");
bong.addClickHandler(new ClickHandler(){
@Override
public void onClick(ClickEvent event){
Window.alert("Bong!!!");
}
});
lp1.add(ping);
lp1.setWidgetLeftWidth(ping, 100, Style.Unit.PX, 500, Style.Unit.PX);
lp1.setWidgetTopHeight(ping, 100, Style.Unit.PX, 500, Style.Unit.PX);
lp1.add(bong);
lp1.setWidgetLeftWidth(bong, 50, Style.Unit.PCT, 600, Style.Unit.PX);
lp1.setWidgetTopHeight(bong, 50, Style.Unit.PCT, 200, Style.Unit.PX);
Button b=new Button("Click Me");
b.addClickHandler(new ClickHandler(){
@Override
public void onClick(ClickEvent event){
RootLayoutPanel.get().add(lp1);
}
});
RootPanel.get("button1").add(b);
}
ClickPanel
은 단순히 HasClickHandelers
을 구현 HTMLPanel
을 대체합니다. "Click Me"를 클릭하면 레이아웃 패널이 열립니다. 패널 ping을 클릭하면 레이아웃 패널이 제거되지만 버튼 "클릭"은 클릭 할 수 없습니다. 나는 다양한 옵션을 시도했다. RootPanel.get().remove(RootLayoutPanel.get())
를 호출
업데이트
는 RootLayoutPanel
LayoutPanel을 삭제하고 인 RootPanel에 위젯을 클릭 할 수 있도록를 제거합니다. 그러나 후속 호출 인 RootLayoutPanel.get.add()
이 IndexOutOfBoundsException
을 던지기 때문에 무언가가 엉망이됩니다. 그래서 이것은 완전한 대답이 아닙니다.
방화범이나 유사한 도구로 DOM을 검사 해 보셨습니까? 어쩌면'RootLayoutPanel'에서 여전히 "남은 음식"이 남아있을 수도 있습니다. –
예, div가 남아 있습니다. 아마 들어가서 DOM을 바로 잡을 수는 있지만 꽤 부서지기 쉬운 것 같습니다. 버그입니까 아니면 제대로 사용하지 않았습니까? GWT 프로젝트에 버그로 게시하고 그들이 말하는 것을 볼 수도 있지만 먼저 질문을하겠습니다. – Kerr
이것은 내가 사용하는 것입니다. RootPanel.get(). remove (RootLayoutPanel.get()); 하지만 작동하지 않습니다. 그리고 RootLayoutPanel.get(). clear()도 작동하지 않습니다. – Ben