presententerwidget的TabContainer的GWTP实现



我在一个应用程序中使用GWTP。在这个应用程序中,我经常需要做一个PresenterWidget,它包含每个标签中有一个PresenterWidget的标签。

由于容器是PresenterWidget,我不能使用TabContainerPresenter类,所以我正在做我自己的实现。

我遇到了一些问题,而试图管理包含在制表符(onReveal(), onHide()等)PresenterWidget的生命周期。

第一个问题:在这种特殊情况下,是否建议手动调用onReveal(), onHide()等?

第二个问题:我试图管理生命周期而不调用这些方法。

我是这样做的:当用户单击一个选项卡时,主演示者调用setInSlot(index,presenterWidget)将相应的PresenterWidget放在右边的选项卡中。

但是:当我点击一个选项卡时,onReveal()在相应的PresenterWidget上被调用(好!)然后onReset()在所有PresenterWidget上被调用:为什么全部?我希望onReset()只在活动选项卡对应的PresenterWidget上被调用。

=>在这种情况下setInSlot()是正确的方法调用?

也许这可能会有所帮助:https://github.com/ArcBees/GWTP/wiki/Presenter-%22Slots%22

    我不建议手动调用生命周期方法。没有它们也能正常工作。
  1. 您希望使用setInSlot()方法,因为在任何时候只有一个PresenterWidget是活动的。

然而,你为每个PresenterWidget使用不同的插槽。setInSlot()的工作方式是它替换任何分配给该槽的PresenterWidget。因为每个选项卡使用不同的插槽,所以它不会删除其他PresenterWidgets。其他PresenterWidget留在他们的位置,可能这就是onReset()被调用的原因。
你有两个选择:

  • 如果你想保持不同的插槽,你应该调用removeFromSlot对所有不可见的PresenterWidgets
  • 只指定一个插槽(TAB_CONTENT),并简单地使用setInSlot()

相关内容

  • 没有找到相关文章

最新更新