私は 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);
}
});
}
これは、フラグメントの 1 つのコードです。
// 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;
}
助言がありますか?