2012-11-14 105 views
1

我正在使用ViewPager並使用按鈕更改頁面。我有它的工作,但它有不一致的表現。有時它只是不會作出反應。您仍然可以通過觸摸滾動,但該按鈕不起作用。我有一個ViewPager與幾個片段。這是在FragmentActivity的ViewPager代碼:ViewPager + Fragments +使用按鈕更改頁面

private void initializeViewPager() { 
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 
    mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(mSectionsPagerAdapter); 
    mViewPager.setOnPageChangeListener(new OnPageChangeListener() { 

     ActionBar actionBar = getActionBar(); 

      @Override 
      public void onPageSelected(int position) { 
       currentPage = position; 
      } 

      @Override 
      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 
       Log.d(TAG, "onPageScrollStateChanged: " + state); 

      } 

     }); 
} 

這是片段中的一個的代碼:

//從FragmentActivity

static ViewPager mViewPager = MainActivity.mViewPager; 

//註冊參照ViewPager onClick和setPagerItem

ImageView next = (ImageView)v.findViewById(R.id.ic_menu_next); 
    next.requestFocus(); 
    next.setOnClickListener(new OnClickListener() { 
    @Override 
      public void onClick(View view) { 
       mViewPager.setCurrentItem(getItem(+1), true); 
      } 

     }); 

//這個計算出其中的ViewPager你

private static int getItem(int i) { 
    int a = mViewPager.getCurrentItem(); 
    i += a; 
    return i; 
} 

有什麼建議?

回答

2

嘗試使用您的currentPage字段作爲位置。在ViewPager上調用getCurrentItem()似乎不能正確地獲取位置。

mViewPager.setCurrentItem(currentPage + 1, true);