junixapp/XPopup

建议XPopupUtils类兼容组件化开发

Closed this issue · 1 comments

50kg commented

XPopup版本
如2.9.19

https://github.com/Qihoo360/RePlugin
项目使用了360的插件库,由于插件的context和普通app不太一样。而XPopupUtils类部分方法如 getStatusBarHeight,使用的是Resources.getSystem().getIdentifier()动态获取资源ID的方式,此时获取的是宿主的资源id,而并非插件的资源id,导致项目运行异常,报错信息如 #407 一致,希望作者兼容一下。

解决方案可以使用new XPopup.Builder(context)传递的context,或者在Application给设置全局context的地方,而并非动态获取,感谢!
image

50kg commented

好吧,是插件库的问题,只能通过反射获取,还是希望作者兼容一下,加个try catch 再反射获取一次
Qihoo360/RePlugin#322

Class<?> clazz = Class.forName("com.android.internal.R$dimen");
Object object = clazz.newInstance();
int id = Integer.parseInt(clazz.getField("status_bar_height")
.get(object).toString());
statusBarHeight = context.getResources().getDimensionPixelSize(id);