viewPager刪除緩存fragment


fragment結合viewpager會緩存fragment在內存,除非退出程序,想要不退出程序情況下刷新fragment頁面,就要刪除緩存;

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;
    }


}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM