-1

異なるフラグメントでViewPagerを実装しようとしています。ViewPagerをフラグメントで実装すると、ViewPagerのすべてのページで1ページだけが変更されます。

問題は、ViewPagerのすべてのページからアプリケーションを実行すると、ViewPagerの他のページにスライドするとそのページが1つだけ表示され、変更されることです。

私のコードを見てください(私は何度もオンラインリソースを参照してチェックしましたが)。プライベート内部クラスとしてFragmentPagerAdapter延長し、ViewPagerにアダプタを設定するアダプタクラスを設定

public class fragment1 extends Fragment { 

/* Variable to store reference to the ACtivity */ 
Activity mCurrentActivity; 

/* Variable storing reference to the ArrayList */ 
private ArrayList<Word> mDefaultWords; 

/** 
* THe empty public Constructor 
*/ 
public fragment1(){ 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    /** Getting reference to the Activity */ 
    mCurrentActivity = getActivity(); 

// Populating the ArrayList here 
// And later in the onActivityCreated callback I set an adapter on the ArrayList 

    return inflater.inflate(R.layout.activity_others, container, false); 


} 

@Override 
public void onActivityCreated(Bundle savedStateInstance){ 

    super .onActivityCreated(savedStateInstance); 

    /** 
    * Creating {@link ArrayAdapter} to link the {@link String} 
    * from {@link ArrayList}        {@param 
    */ 
    MyAdapter adaptItems = new MyAdapter(mCurrentActivity, mDefaultWords); 

    // Getting the id of the ListView in numberActivity.xml 
    ListView myList = (ListView) mCurrentActivity.findViewById(R.id.theList); 

    //Chaning background color 
    myList.setBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.holo_purple)); 

    // Setting the adapter with the {@link ListView} 
    myList.setAdapter(adaptItems); 
     } 
    } 
} 

My活動:

これは私の断片のそれぞれがどのように見えるかです。

public class Main2Activity extends AppCompatActivity { 

private ViewPager mViewPager; 
private FragmentPagerAdapter mFragmentStatePagerAdapter; 
private FragmentManager mFragmentManager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 

    mFragmentManager = getSupportFragmentManager(); 
    mViewPager = (ViewPager) findViewById(R.id.theViewPager); 

    mFragmentStatePagerAdapter = new MyFragmentStatePagerAdapter(mFragmentManager); 
    /* Setting the apdapter on the pager */ 
    mViewPager.setAdapter(mFragmentStatePagerAdapter); 

} 

public class MyFragmentStatePagerAdapter extends FragmentPagerAdapter { 

    public MyFragmentStatePagerAdapter(FragmentManager fragmentManager){ 

     super(fragmentManager); 
    } 

    @Override 
    public int getCount(){ 

     return 4; 
    } 

    @Override 
    public Fragment getItem(int position) { 


     if (position == 0) { 
      return new fragment1(); 
     } else if (position == 1){ 
      return new fragment2(); 
     } else if (position == 2) { 
      return new fragment3(); 
     } else { 
      return new fragment4(); 
     } 
    } 
} 
} 

そして、ここでは、私が言ったようにViewPager

<android.support.v4.view.ViewPager 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/theViewPager" 
    android:visibility="visible" /> 

、私は1ページのみが表示されますアプリを実行すると、他のページはViewPagerに存在しているが、それらは空白にして表示するとレイアウトですデフォルトの背景色は です。表示される1ページは、ViewPagerで左右にスワイプすると変更されるページです。

だから何が問題なのですか?

+0

ビューポケットベルに表示されていないフラグメント内のフラグメントインポート(そのフラグメントはv4.Fragmentです)を確認してください。 –

+0

あなたが使用したすべてのコードがthatsだが、 'private ArrayList mDefaultWords;'が初期化されていないことがわかりました。 – Enzokie

+0

いいえ、私はそれを初期化しましたが、ここでは示していませんでした。私はそれを解決しました。断片ごとに1つのXMLレイアウトを使用したときと同じように奇妙な問題でした。 Gradleとsdktoolsのバージョンは非常に古いものでした。私はそれが原因で起こったと思う。 – Arunava

答えて

0

質問をダウンしてください、その本物の問題。 私は周りを歩いて、どうか言わせてください。 何が起こったのですか、私は旧式のgradle版を持っていて、sdktools版も更新されておらず、かなり古いクローンプロジェクトに取り組んでいました。 、ターゲットAPIの最小値はAPI 15 そして、私はAPI 21でアプリケーションをテストしていました。 それで、私は自分のフラグメントごとに異なるレイアウトを使用しています。 これは、それぞれのフラグメントに対して、独自のXMLレイアウトを作成したものです。 それは完全に機能しました。 奇妙な問題を避けるために、私はgradleとsdktoolsを更新しました。

+0

そうだね。実際には、フラグメントごとに1つのレイアウトを使用して問題を解決しました。アプリが持っていた奇妙な問題。私の他のアプリにはこの問題はありません。私はそれがsdktoolsとgradleバージョンのためだと思います。彼らは非常に古いように。 – Arunava

関連する問題