美文网首页
Fragment懒加载

Fragment懒加载

作者: eagleif | 来源:发表于2018-08-10 14:53 被阅读7次

    懒加载解决ViewPager中加载Fragment的问题

    /**
     * 懒加载
     *
     * @author -lw
     * @date -2018/8/10
     * @note -
     * ---------------------------------------------------------------------------------------------------------------------
     * @modified -
     * @date -
     * @note -
     */
    public abstract class LazyFragment extends Fragment {
        /** 是否视图已经初始化了 */
        boolean mIsCreated;
        /** 是否第一次加载 */
        boolean mIsFirstLoad = true;
    
        @Override
        public void onHiddenChanged(boolean hidden) {
            super.onHiddenChanged(hidden);
            if (!hidden) {
                lazyLoad(mIsFirstLoad);
                mIsFirstLoad = false;
            }
        }
    
        @Override
        public void onResume() {
            super.onResume();
            if (getUserVisibleHint() && !isHidden()) {
                lazyLoad(mIsFirstLoad);
                mIsFirstLoad = false;
            }
        }
    
        @Override
        public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
            super.onViewCreated(view, savedInstanceState);
            mIsCreated = true;
        }
    
        @Override
        public void setUserVisibleHint(boolean isVisibleToUser) {
            super.setUserVisibleHint(isVisibleToUser);
            if (isVisibleToUser && mIsCreated) {
                lazyLoad(mIsFirstLoad);
                mIsFirstLoad = false;
            }
        }
    
        /**
         * 是否是第一次加载
         *
         * @param isFirstLoad 是否是第一次加载
         */
        public abstract void lazyLoad(boolean isFirstLoad);
    }
    

    相关文章

      网友评论

          本文标题:Fragment懒加载

          本文链接:https://www.haomeiwen.com/subject/qfnkbftx.html