我正在使用ViewPager在片段之间滑动。
由于不推荐使用onPageSelectedListner()
方法,因此我必须使用AddOnPageChangeListener
所以我的代码看起来像这样:
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
问题:我的目的是返回用户所在的页面。比如,当您从第1页滑动到第2页时,会收到一条Toast-Message,告诉您,您在第2页。如果您向前滑动,它会告诉您,您在第3页,依此类推。
但我在OnClickListener中的方法是返回空洞。我怎样才能获得页面位置?
答案 0 :(得分:1)
使用: -
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Toast.makeText(getApplicationContext(),"You're on page " + String.valueOf(position), Toast.LENGTH_LONG).show();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
在此,position
是onPageSelected
所选方法的参数。页面更改时设置此位置。