如何添加界面的通用行为

例如我想实现:定义接口Commentable, 所有继承该接口的Entity关联的页面我都自动加上一个发表comment的按钮,这个怎么实现呢

如果要对界面进行全局拦截,可以尝试一下这样处理:

  1. 自定义 AppUI Bean, 覆盖平台提供的 AppUI
  2. 创建一个CustomWebScreens 类,继承自平台的 WebScreens 类。
  3. 覆盖 自定义 AppUI 的 setApplicationContext 方法,在这个方法里设置 screens 为自定义的WebScreens 实例,
    image
  4. 在自定义的 CustomWebScreens 的createScreen 方法应该可以拦截到所有要创建的界面。

具体细节请查看相关类的源码,有问题讨论。

单纯针对这个需求,还可以用 screen fragment 来做。fragment 带 UI 和controller,能添加到任意界面中。针对你的需求,可以做一个 fragment,其中有一个按钮对 commentable 接口的实体做操作。可以先了解界面片段界面 mixin

Thanks to @KZR @bryanyin, 我研究研究