2016-07-06 12 views
1

ここでは、ページャの最後の位置とその移動の次の画面に移動しようとしていますが、最後の位置からスワイプしようとすると、次のscreen.iに移動します。最後の位置にビューページャーがあるときにのみ次の叫びに移動します。 。ViewPagerスワイプの問題

@Override 
public void onPageScrollStateChanged(int state) {  
    //viewpager swipe 
    lastPageChange = false; 
    int lastIdx = viewPager.getAdapter().getCount() - 1; 
    curItem = viewPager.getCurrentItem(); 
    if (curItem==lastIdx && state==1 && lastPageChange==false) { 
    lastPageChange = true; 
    Intent main=new Intent(Top3.this,SkipActivity.class); 
    startActivity(main); 
    finish(); 
    } else { 
    lastPageChange = false; 
    }  
} 
+0

** ** if **ステートメントの** lastPageChange == false **部分は常にTRUEです。関数の最初に** lastPageChange **に** false **を割り当て、ifステートメントのチェックは役に立たない。 –

答えて

0

viewPager.getAdapter(から1を削除するには、noを試してみてください)同様にgetCount()

私は、次のことが起こっていると仮定 - あなたはviewPagerで5つのタブを持って言うことができます。あなたは最後のタブにいます。あなたはスワイプしてviewPager.getCurrentItem()が4を返します。同時に、viewPager.getAdapter()。getCount() - 1が返され、4を再度返します(5つのタブ - 1)。そしての条件がの場合は常に真のになり、新しいアクティビティが読み込まれます。

1

この回答はあなたのビューページにあります。最後の位置を見たときにスワイプして次のアクティビティに移動します。 ViewPager.OnPageChangeListener pagerListener = new ViewPager.OnPageChangeListener(){ ブールlastPageChange = false;

   @Override 
       public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
        int lastIdx = book_adapt.getCount() - 1; 

        Log.d("Testing", "pos:" + position); 
        if (lastPageChange && position == lastIdx){ 
         Intent main = new Intent(Top3.this, SkipActivity.class); 
         startActivity(main); 
         finish(); 
        } 

       } 

       @Override 
       public void onPageSelected(int position) { 
        // pgText.setCurrentItem(i/2); 
        viewPagerSet(position); 
       } 

       @Override 
       public void onPageScrollStateChanged(int state) { 
        int lastIdx = book_adapt.getCount() - 1; 

        int curItem = viewPager.getCurrentItem(); 
        if (curItem == lastIdx /*&& lastPos==lastIdx*/ && state == 1) 
         lastPageChange = true; 
        else lastPageChange = false; 
       } 
      }; 

      viewPager.addOnPageChangeListener(pagerListener); 
関連する問題