2016-07-18 17 views
1

私はViewPagerにいくつかのフラグメントを持っていますが、フラグメントのonActivityCreatedonCreateViewは、私が期待する前にページ上で呼び出されています。フラグメントのonActivityCreatedをいつ呼び出す必要がありますか?

たとえば、ViewPagerが2ページ目から3ページ目に切り替わると、4ページ目のフラグメント、onCreateViewおよびonActivityCreatedが呼び出されています。

私はonActivityCreatedでネットワークリクエストを開始しようとしていますが、すぐに1つの画面を開始しています。 Android docsによれば、onActivityCreatedは「フラグメントのアクティビティが作成され、このフラグメントのビュー階層がインスタンス化されたとき」と呼ばれます。それは私が正しい方法を使用していると信じさせる。

+1

ViewPagerでは、近隣ビューがよりスムーズに読み込まれるように読み込まれます。だからこそ彼らは早く呼ばれるのです –

+1

これをチェックしてくださいhttp://stackoverflow.com/questions/26400014/how-to-handle-network-calls-inside-a-fragment help.tryデモ@ https://github.com/shomeser/view-pager-fragment – Raghunandan

答えて

2

フラグメント間のスムーズな移行のためにViewPagerが次のフラグメントをロードするため、次のフラグメントのonCreate(),およびonResume()が呼び出されています。事前にフラグメントをロードするデータビューページャのスムーズなロードについて

yourViewPager.addOnPageChangeListener(new OnPageChangeListener{ 
    @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {} 
     @Override 
     public void onPageSelected(int position) { 
     switch(position){ 
      //your code for network operation 
     } 
    } 
    @Override 
     public void onPageScrollStateChanged(int state) {} 

});  
+0

これはトリックでした。あなたロック:D –

+0

ありがとう。私はそれが助けて嬉しいです:) –

4

: だから、のようなあなたのviewPagerにonPageChangeListenerを追加します。 1.最初の位置にある場合(最初のフラグメント)、自動的に次の2つのフラグメントが読み込まれます。 2. 2以降の場合、前のフラグメントと次のフラグメントがロードされます。

0

他これは、ビューページャーでのデータの円滑なロードのために行われます。あなたのコードはonAattach()に、またはあなたのフラグメントがonStart()にユーザに見えるときにあなたのコードを呼び出すことができます。 Android docsは、ライフサイクルメソッドの詳細を示します。

関連する問題