public MyAdapter(FragmentManager fragmentManager) {
super(fragmentManager,FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
源代码 public MyAdapter(FragmentManager fragmentManager) { super(fragmentManager); }改为public MyAdapter(FragmentManager fragmentManager) { super(fragmentManager,FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
用到View
Pager和TabLayout时,发现
FragmentPagerAdapter()方法过时
class My
Adapter(fm:
FragmentManager?,
fragmentList: List<
Fragment>):
FragmentPagerAdapter(fm!!){
.......
解决办法:
class My
Adapter(fm:
FragmentManager?,
fragmentList: List<
Fragment>):
FragmentStateManager
An Android library that holds fragment states for BottomNavigationView. Saves fragment back stack even after activity rotation. Implementation derived from FragmentStatePagerAdapter.
Installation
Add Jitpack to project level gradle file
allprojects {
repositories {
maven { url "https://jitpack.io" }
Then add library to module level gradle file
dependencies {
compile 'com.github.okaybroda:FragmentStateManager:1. '
Usage
Create a FragmentStateManager in
在项目中,我采用的是View
Pager+
FragmentPagerAdapter+
Fragment的方式,要实现
fragment的刷新,但是发现并没有把View
Pager中的
fragment替换掉,因此上网查阅了很多博客,最后解决了这个问题。
我就直接贴上我的代码
public class MyView
Pager
Adapter extends
FragmentPagerAdapte...
FragmentPagerAdapter以及FragmentStatePagerAdapter都是继承自PagerAdapter,可以看到其中FragmentPagerAdapter和FragmentStatePagerAdapter覆盖的方法都不多,主要是
instantiateItem()
destroyItem()
setPrimaryItem()
finishUpdate...
使用Fragment时无可避免的就是要用到FragmentManager,FragmentManager主要是用来管理Fragment,可用于Activity管理Fragment,还有Fragment管理嵌套在本身的子Fragment,场景不同,获取FragmentManager的方式也不同,因为曾经被这几个获取方法搞得有点混乱,所以在此做了个总结,主要分以下三个方法
1、getFragme
viewpager2并没有这个问题。
一直以来我在用viewpager和FragmentPagerAdapter或FragmentStatePagerAdapter管理fragment的时候总是和下面的代码类似,但是下面的代码在某些情况下会出现问题
接下来我们慢慢分析:
public class MainActivity extends FragmentActivity {
private ViewPager m_vp;
private ArrayList<Fragment&g