2015-12-03 95 views
0

我的ViewPager有問題。在設置ViewPager.setCurrentItem之後,方法onPageSelected ViewPager未被調用。這我的代碼:onPageSelected ViewPager不能在ViewPager.setCurrentItem之後調用

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
    ... 

    mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager()); 
      mViewPager.setAdapter(mMyFragmentPagerAdapter); 
      mViewPager.setCurrentItem(999); 

      mViewPager.addOnPageChangeListener(new OnPageChangeListener() { 

       public void onPageSelected(int currentIndex) { 
        current_posisition_page = currentIndex; 
        PageFragment page = ((MyFragmentPagerAdapter) mViewPager.getAdapter()).getFragment(current_posisition_page); 
        page.checkSetContentData(); 
       } 

       public void onPageScrolled(int arg0, float arg1, int arg2) { /* Nothing to do here */ } 

       public void onPageScrollStateChanged(int arg0) { /* Nothing to do here */ } 
      }); 


    .... 

    } 

上面的代碼,當活動創建時,viewpager跳轉到索引999頁。但代碼內部onPageSelected不會自動調用。當我滑動到索引988頁面並再次回到索引999頁面時,這只是工作。那麼如何解決呢?謝謝我的Englsih。

回答

1

嘗試在致電setCurrentItem()之前添加偵聽器。

0

你應該這樣做:

mViewPager.addOnPageChangeListener(this); 
onPageChanged(999); 
mViewPager.setCurrentItem(999); 
@Override 
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

} 

@Override 
public void onPageSelected(int position) { 
    // your code 
} 

@Override 
public void onPageScrollStateChanged(int state) { 

} 
相關問題