ViewPager + Fragments +带按钮的更改页面

时间:2012-11-14 17:00:09

标签: android android-viewpager

我正在使用ViewPager并使用按钮更改页面。我有它工作但它的性能不一致。有时它不会反应。您仍然可以触摸滚动但按钮不起作用。我有一个带有一些片段的ViewPager。这是FragmentActivity中的ViewPager代码:

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的ViewPager

static ViewPager mViewPager = MainActivity.mViewPager;

//注册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;
}

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

尝试使用currentPage字段作为该职位。在ViewPager上调用getCurrentItem()似乎无法正确获取位置。

mViewPager.setCurrentItem(currentPage + 1, true);