viewPager remove cached fragment

fragment binding fragment viewpager cached in memory, unless exit the program, do not want to exit the program fragment refresh the page under the circumstances, you must remove the cache;

public class MainActivity extends AppCompatActivity {

    ViewPagerAdapter2 viewPagerAdapter2;
    ViewPager viewPager;
    @Override

    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        s3 = 1;
       viewPager = findViewById(R.id.viewPager);
       viewPagerAdapter2 = new ViewPagerAdapter2(getSupportFragmentManager());
        viewPager.setAdapter(viewPagerAdapter2);

        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("点击");


        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
                List<Fragment> fragments = getSupportFragmentManager().getFragments();
                if (fragments != null) {

                for (Fragment childFragment :fragments) {
            transaction.remove(childFragment);
           
        } 
 transaction.commit();
 }


              viewPagerAdapter2 = new ViewPagerAdapter2(getSupportFragmentManager());
                viewPager.setAdapter(viewPagerAdapter2);
                viewPagerAdapter2.notifyDataSetChanged();
            }
        });

    }


}
public class ViewPagerAdapter2 extends FragmentPagerAdapter {


    public ViewPagerAdapter2(FragmentManager fm) {
        super(fm);




    }



    @Override
    public Fragment getItem(int position) {
        System.out.println("输出item"+position);

        switch(position) {
            case 0:
                return new BlankFragment();
            case 1:
                return new BlankFragment2();

        }


        return null;
    }

    @Override
    public int getCount() {

        return array.length;
    }

    @Override
    public CharSequence getPageTitle(int position) {

        return array[position];
    }
    public int getItemPosition(Object object) {
// TODO Auto-generated method stub
        System.out.println("返回位置");
        return PagerAdapter.POSITION_NONE;
    }


}

 

Guess you like

Origin www.cnblogs.com/Ocean123123/p/11209682.html