如何从Fragment访问Layout Resource以创建Scene Transitions场景
错误原因
Scene.getSceneForLayout方法的第二个参数要求传入布局资源ID(R.layout.xxx格式的Int值),你两种写法的传参都不符合要求:
- 第一种写法中
activity.resources.getLayout(R.layout.layout_overview)返回的是XmlResourceParser类型,和要求的Int类型参数不匹配 - 第二种写法不仅同样错误使用了
getLayout()方法,还误用了R.id.layout_overview,这是控件ID而非布局资源ID,自然找不到对应布局
正确实现
直接传入对应布局的资源ID即可,和官方示例写法一致:
val aScene: Scene = Scene.getSceneForLayout(sceneRoot, R.layout.layout_overview, activity)
如果是在Fragment中调用,第三个context参数替换为requireContext()即可。注意确认R.layout.layout_overview是你res/layout目录下存在的布局文件对应的资源ID,不要和控件ID混淆。
内容的提问来源于stack exchange,提问作者user8110441
相关产品推荐
相关产品推荐

