fragment 切换数据显示异常

这是在activity中fragment切换 只能是使用hide show 方法解决数据刷新问题


//在fragment页面中直接重写 

@Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged(hidden);
        if (!hidden) {
//			在这里写刷新的需求
//            Toast.makeText(getActivity(), "刷新了---显示", Toast.LENGTH_SHORT).show();
        }else {
//				这里可写可不写   
//            Toast.makeText(getActivity(), "刷新了---隐藏", Toast.LENGTH_SHORT).show();
        }
    }

当fragment结合viewpager使用时 下面的方法会调用,而上面的方法不会调用?

//setUserVisibleHint是在onCreateView之前调用的

public abstract class BaseLazyLoadFragment extends Fragment {

    //是否是第一次加载数据
    protected boolean mIsFirstGetData = true;
    //fragment对用户是否可见
    protected boolean mIsVisibleToUser;
    //根布局
    protected View mRootView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        //只有为空的时候加载布局,
        // 因为在viewpager中fragment对象不会被销毁,成员变量也不会销毁
        if (mRootView == null) {
            mRootView = inflater.inflate(provideLayoutId(), container, false);
            initView();
        }
        return mRootView;
    }


    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //懒加载数据
        lazyLoadData();
    }

    //fragment是否需要实时刷新,如果需要返回true,不需要返回false
    protected abstract boolean setIsRealTimeRefresh();

    protected abstract void initData();

    protected abstract void initView();

    protected abstract int provideLayoutId();

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(mIsVisibleToUser);
        //设置可视状态
        mIsVisibleToUser = isVisibleToUser;
        //懒加载数据
        lazyLoadData();
    }

    public void lazyLoadData() {
        if ((mIsFirstGetData || setIsRealTimeRefresh()) && mIsVisibleToUser && mRootView != null) {
            mIsFirstGetData = false;
            Log.e("TAG", "initData");
            initData();
        }
    }

}

你可能感兴趣的:(fragment 切换数据显示异常)