2014-01-06 2 views
7

私は、フラグメントを使ってページアダプタを作成するアプリを持っています。私はこれを使って別の断片を読み込むスワイプタブを作成します。各フラグメントは特別にフォーマットされたWebサイトを表示するwebviewを読み込みます。今、私のアプリはそれがあるフラグメントとそのフラグメントを左右にロードします。一度に6つのタブをすべてロードして、もう一度ロードしたいと思います。これを行う方法はありますか?アプリのオープニングにすべてのフラグメントをロードする

import android.content.res.Configuration; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 

public class MainActivity extends FragmentActivity { 

    ViewPager viewPager=null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      viewPager = (ViewPager) findViewById(R.id.pager); 
      FragmentManager fragmentManager=getSupportFragmentManager(); 
      viewPager.setAdapter(new MyAdapter(fragmentManager));  
    } 

    @Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
    } 

} 

class MyAdapter extends FragmentPagerAdapter { 


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

      // TODO Auto-generated constructor stub 
    } 

    @Override 
    public Fragment getItem(int i) { 
      Fragment fragment=null; 
      if(i==0)fragment=new Introduction(); 
      if(i==1)fragment=new Arena(); 
      if(i==2)fragment=new Game(); 
      if(i==3)fragment=new Robot(); 
      if(i==4)fragment=new Tournament(); 
      if(i==5)fragment=new Glossary(); 
      return fragment; 
    } 

    @Override 
    public int getCount() { 
      // TODO Auto-generated method stub 
      return 6; 
    } 

    public CharSequence getPageTitle(int position) { 
      String title=new String(); 
      if(position==0)return "Summary"; 
      if(position==1)return "The Arena"; 
      if(position==2)return "The Game"; 
      if(position==3)return "The Robot"; 
      if(position==4)return "The Tournament"; 
      if(position==5)return "Glossary"; 
      return null; 
    } 
} 

答えて

22

setOffscreenPageLimitは、フラグメントの半分よりも大きな数値です。 これにより、ビューアで作成したすべてのフラグメントを作成して保持することができます。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     viewPager = (ViewPager) findViewById(R.id.pager); 
     // use a number higher than half your fragments. 
     viewPager.setOffscreenPageLimit(4); 
     FragmentManager fragmentManager=getSupportFragmentManager(); 
     viewPager.setAdapter(new MyAdapter(fragmentManager));  
} 
+1

いいです..これは私を助けました – pratz9999

関連する問題