We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ViewPager+Fragment,如果有4个Fragment,activity加载完后后面的2个Fragment还没有初始化,里面设置的tag会失效,设置过的Fragment中的tag,如果该Fragment被销毁了在重新创建时里面的tag也会失效。
The text was updated successfully, but these errors were encountered:
问题出在SkinManager.register(final Activity activity),注册的时候是按照activity注册的,通知view换肤的情况就是调用SkinManager.notifyChangedListeners();这个方法来遍历所有的activity下的(包括fragment)的view换肤。 然而.register(final Activity activity)这个方法的源码是这样的public void register(final Activity activity) { mActivities.add(activity);
activity.findViewById(android.R.id.content).post(new Runnable() { @Override public void run() { apply(activity);// 这里只调用了APPly方法 } }); }
再来看 public void apply(Activity activity) { List skinViews = SkinAttrSupport.getSkinViews(activity); if (skinViews == null) return; for (SkinView skinView : skinViews) { skinView.apply(); } } 这个时候遍历activity的所有view来换肤。 所以当fragment在activity oncreate()之后添加就没有换肤效果了。或者当换过肤的fragment销毁之后重新创建就也没有效果了。
Sorry, something went wrong.
如果 把viewpager的缓存量 加载到最大,应该可以解决,但是这种方式不够优雅.....
SkinManager.getInstance().injectSkin(v);
No branches or pull requests
ViewPager+Fragment,如果有4个Fragment,activity加载完后后面的2个Fragment还没有初始化,里面设置的tag会失效,设置过的Fragment中的tag,如果该Fragment被销毁了在重新创建时里面的tag也会失效。
The text was updated successfully, but these errors were encountered: