1

我正在使用 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;
}

有什么建议么?

4

1 回答 1

2

尝试将您的currentPage领域用于该职位。在 ViewPager 上调用 getCurrentItem() 似乎无法正确获取位置。

mViewPager.setCurrentItem(currentPage + 1, true);
于 2012-11-14T17:08:52.877 回答