android viewpager fragment 生命周期,Viewpager + Fragment滑动时生命周期的回调顺序

最近在做一个项目中用到了viewpager+fragment实现的功能,但是出现了一些问题,尤其是fragment生命周期的问题,有人会说了这生命周期有什么难的,不就是按顺序回调么,显示回调哪些,隐藏回调哪些…… 这大家都知道的

其实这种问题经常出现在用到的fragment是相同的,比如说做题同一种题型我们就会用相同的fragment,因为里面的业务逻辑都是一样的,所以在这个时候我们切换题目的时候,就会因为生命周期而引起的业务逻辑上的问题。尤其在fragment里面用到单例模式时更要注意。

下面就通过代码示例讲一下viewpager切换fragment时生命周期的变化,以及每个fragment中调用的先后顺序(顺序这个很重要,顺序这个很重要,顺序这个很重要)。

首先新建一个Activity:

public class RecordActivity extends AppCompatActivity {

ViewPager viewPager;

List list;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_record_view);

viewPager = findViewById(R.id.viewpager);

list = new ArrayList<>();

list.add(PlusOneFragment.newInstance());

list.add(PlusTwoFragment.newInstance());

list.add(PlusThreeFragment.newInstance());

list.add(PlusFourFragment.newInstance());

FragmentStatePagerAdapter adapter = new FragmentStatePagerAdapter(getSupportFragmentManager()) {

@Override

public Fragment getItem(int i) {

return list.get(i);

}

@Override

public int getCount() {

return list.size();

}

};

viewPager.setAdapter(adapter);

}

@Override

protected void onStart() {

super.onStart();

Log.e("Activity","onStart");

}

@Override

protected void onResume() {

super.onResume();

Log.e("Activity","onResume");

}

}

R.layout.activity_record_view如下:

xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/viewpager"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

RecordActivity里面很简单,就是初始化viewpager并设置adapter,这里用的是FragmentSta

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值