我正在为应用程序使用GWTP。在此应用中,我经常需要执行PresenterWidget
,其中包含每个标签中带有PresenterWidget
的标签。
由于容器是PresenterWidget
,我不能使用类TabContainerPresenter
,所以我正在进行自己的实现。
我在尝试管理标签PresenterWidget
,onReveal()
等中包含的onHide()
生命周期时遇到了一些问题。
第一个问题:在这种特殊情况下,是否建议您手动拨打onReveal()
,onHide()
等?
第二个问题:我试图在不调用这些方法的情况下管理生命周期。
这就是我所做的:当用户点击标签时,主要演示者会调用setInSlot(index,presenterWidget)
将相应的PresenterWidget
放在右侧标签中。
但是:当我点击标签时,会在相应的onReveal()
(好!)上调用PresenterWidget
,然后在所有onReset()
上调用PresenterWidget
:为什么全部?我希望仅在与活动标签对应的onReset()
上调用PresenterWidget
。
=>在这种情况下,setInSlot()
是正确的调用方法吗?
答案 0 :(得分:2)
也许这可能会有所帮助:https://github.com/ArcBees/GWTP/wiki/Presenter-%22Slots%22
setInSlot()
方法,因为在任何时候只有一个PresenterWidget
处于活动状态。 但是,您为每个PresenterWidget
使用不同的SLOTS。 setInSlot()
的工作方式是替换分配给该广告位的PresenterWidget
。由于您为每个标签使用了不同的广告位,因此无法删除其他标记PresenterWidgets
。其他PresenterWidget
留在他们的插槽中,这可能是他们调用onReset()
的原因。
你有两个选择:
removeFromSlot
上致电PresenterWidgets
。setInSlot()