同一个视图,在菜单中配置多个入口,通过id区分。
视图类中通过getPageTitle提供了不同的title文本
但在实际运行中,如果在这几个菜单入口间进行切换,getPageTitle函数正常被调用,界面文字却没变化。
如果是从其他菜单入口切换到这几个入口,界面文字是正确的。
问题:
同一视图文件,在菜单中配置多个入口后,切换视图时getPageTitle函数虽然被调用,但界面上的title文本显示不正确。
同一个视图,在菜单中配置多个入口,通过id区分。
视图类中通过getPageTitle提供了不同的title文本
但在实际运行中,如果在这几个菜单入口间进行切换,getPageTitle函数正常被调用,界面文字却没变化。
如果是从其他菜单入口切换到这几个入口,界面文字是正确的。
问题:
同一视图文件,在菜单中配置多个入口后,切换视图时getPageTitle函数虽然被调用,但界面上的title文本显示不正确。
不正确的title文本是视图标题,浏览器的title设置正确。
我看调用栈是能走到的:
而且标题也设置了:
是菜单设置中两个item调用同一个ListView,通过urlQueryParameters传递参数。
当在这两个菜单项之间切换时,pageTitle刷新了,viewTitle不刷新。
我看到viewTitle是在StandardMainView中定义并负责刷新的,但是菜单切换时如果是同一个ListVIew,StandardMainView中的updateTitle方法没有被调用。
明白了,我感觉是个bug @bryanyin .
这里可以先这样解决,在 Organization.list 里面:
@Subscribe
public void onReady(final ReadyEvent event) {
getParent()
.flatMap(p -> UiComponentUtils.findComponent(p, "viewTitle")
.filter(c -> c instanceof HasText))
.ifPresent(c -> ((HasText) c).setText(getPageTitle()));
}
主动修改viewTitle的方法是可以的,多谢。