我正在使用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;
}
有什么建议吗?
答案 0 :(得分:2)
尝试使用currentPage
字段作为该职位。在ViewPager上调用getCurrentItem()似乎无法正确获取位置。
mViewPager.setCurrentItem(currentPage + 1, true);