viewpager切换可能导致的内存不断扩大

    xiaoxiao2022-06-29  45

    在主fragmentactivity设置

    在使用viewpager页面为viewpager设置//关闭预加载,默认一次只加载一个Fragment viewPager.setOffscreenPageLimit(5);//这样可以每个子页面保证只创建一次//5可以设置更大,

    setOffscreenPageLimit网上给的解释是加载fragment的个数,如果设置是1的话感觉并没有用,会导致只保留目前选择的fragment周围2个和他自己,再切换到其他的fragment时,会重新进行onCreateView,现在我设置为5就为了让所有fragment保留下来,不扩大内存的使用

    在子Fragment中

    onCreateView方法中进行初始化

    并且重写setUserVisibleHint方法

    @Override public void setUserVisibleHint(boolean isVisibleToUser) { // TODO Auto-generated method stub super.setUserVisibleHint(isVisibleToUser); // 每次切换fragment时调用的方法 if (isVisibleToUser) { try { read();//网络获取 } catch (Exception e) { } } } 这样可以保证切换页面时再进行网络链接,

    因为setUserVisibleHint执行于onCreateView之前,所以可能在FragmentActivity加载的第一个页面时会有空指针的异常,

    一般来说,只需要在第一个加载的页面try catch就可以了,其他页面都是初始化好了的

    setUserVisibleHint方法会在切换子fragment时调用

    转载请注明原文地址: https://ju.6miu.com/read-1125246.html

    最新回复(0)