Tencent / Shadow

零反射全动态Android插件框架
BSD 3-Clause "New" or "Revised" License
7.37k stars 1.29k forks source link

插件manager中的view如果有ProgressBar,但是宿主不显示ProgressBar #1271

Closed budaowengd closed 6 months ago

budaowengd commented 6 months ago

1、Shadow里Manager就会首先从manger.apk中动态加载一个View供宿主显示Loading状态。修改activity_load_plugin.xml `

`

2、ProgressBar 不会显示,页面只显示"正在加载中..."

image image

请问是咋回事

shifujun commented 6 months ago

这一般就是View的Context的问题。

https://github.com/Tencent/Shadow/blob/d9deb2f5da99091409be0e5e2fa718db57dff2bd/projects/sample/source/sample-manager/src/main/java/com/tencent/shadow/sample/manager/SamplePluginManager.java#L115

这里的inflater的context可能是宿主的。所以有些资源可能找不到。调试调试看看它在请求context的哪些接口,搞一个wrapper接下来请求,从插件里取资源给它一般就可以了。

budaowengd commented 6 months ago

大佬,我从github拉下来Shadow代码后,就修改了 activity_load_plugin.xml,然后加了个ProgressBar,就显示不了了。你说的"搞一个wrapper接下来请求,从插件里取资源给它一般就可以了。" 我有点不懂该改哪里,可以再详细说说吗?

shifujun commented 6 months ago

这是个Bug。activity_load_plugin.xml原本就有个ProgressBar没显示出来。 没看代码前,我忘了前面说的那个context其实已经不是宿主的了。

budaowengd commented 6 months ago

已确认修复,感谢!