Fragment延迟加载(实时更新)

公司项目里面用到fragment。fragment自带预加载,有的项目需要预加载,有的项目不要预加载,信息要实时更新。用户看到的fragment里面的信息是最新信息,即每次都要重新加载数据。
ViewPager+fragment实现延迟加载即重写父类的setUserVisibleHint()方法,很简单,跟重写oncreate方法一样,系统自动调用。

public class Fragment3 extends Fragment{
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        if(isVisibleToUser){//判断fragment是否显示。这里写从服务器拿数据的方法就可以了。
            Toast.makeText(ViewPagerAndFragment.instance, "fragment3显示", 0).show();
        }
        super.setUserVisibleHint(isVisibleToUser);
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment3, null);
//      Toast.makeText(getActivity(), "fragment3", 0).show();
        return view;
    }
}

就重写这个方法就好了,真不知道该说啥。下面说不用ViewPager的,光用fragment,用hide跟show来显示跟隐藏fragment,怎么实现实时加载。这个也简单,重写父类的onHiddenChanged方法就可以了

public class Fragment2 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment2, null);
//      Toast.makeText(getActivity(), "fragment2", 0).show();
        return view;
    }

    @Override
    public void onHiddenChanged(boolean hidden) {
        if (!hidden) {//判断fragment是否显示。这里写从服务器拿数据的方法就可以了。
            Toast.makeText(HideAndShowFragmentActivity.instance, "fragment2显示", 0).show();
        }
        super.onHiddenChanged(hidden);
    }
}

后面有项目链接,下载下来看了就会知道,发现每一个Acitivity都有好几个fragment,这不是废话么,延迟加载肯定要几个fragment一起,才可以测出来。我想说的是还会碰到一个情况,那就是比方说,在fragment1点击一个按钮跳转到一个activity,然后操作完,返回来的时候,发现数据没有变,这里又想做到实时跟新,其实很简单,返回来的时候不要只finish(),用startActivityForResult()就可以实现,在fragment1所在的activity里面重写onActivityResult就可以了,很简单的。

fragment实时加载数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海晨忆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值