Closed chachako closed 4 years ago
用 rootSceneComponentFactory,拦截创建个新的 Scene,把你的 Object 通过构造方法传入
感谢
那么当在 Scene 中 Push 另一个 Scene 时需要传输对象时呢?应该如何做
你要支持销毁恢复吗?(就是那个 supportResotre),不支持的话(就是返回false),直接把你的对象放入构造方法参数呗,支持的话(就是返回true),写个 XXXXXScene.newIntance(YYY),只能把支持序列化的对象放入 Scene.setArguments
你要支持销毁恢复吗?(就是那个 supportResotre),不支持的话(就是返回false),直接把你的对象放入构造方法参数呗,支持的话(就是返回true),写个 XXXXXScene.newIntance(YYY),只能把支持序列化的对象放入 Scene.setArguments
是这样吗
oneScene.requireNavigationScene().push(`TwoScene(obj, obj1)`, PushOptions.Builder().setAnimation( SharedElementSceneTransitionExecutor( map, Slide() ) ).build())
TwoScene(obj, obj1)
但是好像会出错,昨天晚上好像是看到说不允许有参数,请问有示例代码吗@qii
class MainActivity : SceneActivity() {
override fun getHomeSceneClass(): Class<out Scene> {
return MainScene::class.java
}
override fun supportRestore(): Boolean {
return false //这里返回false
}
}
返回true就是强制支持销毁恢复,只允许序列化的对象传递,不允许Scene有其他其他的构造方法
@qii 另外,Activity 或 Fragment 如何与 Scene 通信
例如 Activity 有一个下载任务,下载完后我需要通知 Scene 已经下载完成
在同个Activity内吗?如果是,用 ViewModel+LiveData,如果不是,用类似 EventBus 这种,订阅一个单例,下载完成的地方给这个单例发消息
ViewModel+LiveData
是指 Activity 与 Scene 使用同一个 ViewModel 吗
activity:
ViewModelProviders.of(this).get(MyViewModel::class.java)
scene:
ViewModelProviders.of(activity).get(MyViewModel::class.java)
是的
Activity 有一个 Object 要传给 Scene,Scene支持构造函数吗,如果是View的话应该是可以交给setter的才对