2016-09-06 7 views
-1

私は3つのフラグメントを作成して、私はビューページでテーマを設定しましたが、私はビューページの最後に再び最初の1つのリロード!私はビューページの最後に行く最初の1つのリロード

@Override 保護された無効なonCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); List fragments = new Vector <>();

fragments.add(Fragment.instantiate(this,Discover.class.getName())); 
    fragments.add(Fragment.instantiate(this,Category.class.getName())); 
    fragments.add(Fragment.instantiate(this,Favory.class.getName())); 

    PagerAdapter pageAdapter=new PagerAdapter(getSupportFragmentManager(),fragments); 
    final ViewPager viewpager=(ViewPager) findViewById(R.id.viewpager); 
    viewpager.setAdapter(pageAdapter); 
    final ActionBar actionBar =getSupportActionBar(); 
    actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#EFEBE9"))); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    ActionBar.TabListener tabListener =new ActionBar.TabListener(){ 
     @Override 
     public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft){ 
     viewpager.setCurrentItem(tab.getPosition()); 
     } 
     @Override 
     public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft){ 

     } 
     @Override 
     public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft){ 

     } 
    }; 

    TextView tD = new TextView(getApplicationContext()); 
    tD.setText("Discover"); 
    tD.setTextColor(Color.BLACK); 
    TextView tF = new TextView(getApplicationContext()); 
    tF.setText("Favory"); 
    tF.setTextColor(Color.BLACK); 
    TextView tC = new TextView(getApplicationContext()); 
    tC.setText("Category"); 
    tC.setTextColor(Color.BLACK); 


    actionBar.addTab(actionBar.newTab().setTabListener(tabListener).setCustomView(tD)); 
    actionBar.addTab(actionBar.newTab().setTabListener(tabListener).setCustomView(tC)); 
    actionBar.addTab(actionBar.newTab().setTabListener(tabListener).setCustomView(tF)); 


    viewpager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener(){ 
     @Override 
     public void onPageSelected(int position){ 
      actionBar.setSelectedNavigationItem(position); 

     } 
    }); 

答えて

0
viewPager.setOffscreenPageLimit(NO_OF_FRAGMENTS_IN_MEMORY); 

NO_OF_FRAGMENTS_IN_MEMORYは右と現在のビューページャ断片の左側フラグメントのnoです。スクリーンページの制限を2に設定します。また、アダプタのgetItemメソッドでインスタンスを直接作成しないようにしてください。ヌルかどうかを確認し、インスタンス化します。 `

if(mFragment == null) 
{ 
    mFragment = new MyFragment(); 
    return mFragment; 
} 

`

+0

おかげで、それが仕事だ眉:) –

関連する問題