我使用ViewPager
,想要获取下一个项目,以及向左和向右滚动页面时的上一个项目。我使用了像this example这样的viewpager.setOnPageChangeListener
,但滚动时仍然会给我相同的内容。
这是我的代码:
@Override
public void onPageSelected(int position) {
mFocusedPage = position;
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int state) {
if (state ==ViewPager.SCROLL_STATE_IDLE) {
if (mFocusedPage == 0) {
clientMeterString="firstitem:number1";
} else if (mFocusedPage == 2) {
clientMeterString="seconditem:number2";
}
awesomePager.setCurrentItem(1, false);
}
}
}
);
有人可以帮忙吗?
答案 0 :(得分:3)
我不知道你究竟想要实现什么目标,但我认为总是使用值{setCurrentItem
调用{1}会让你看到相同的内容。
要获取上一页(隐藏的页面),您应该使用SCROLL_STATE_DRAGGING
,例如:
awesomePager.setOnPageChangeListener(new OnPageChangeListener() {
private int prevPage = -1;
@Override
public void onPageSelected(int position) {
// after page is selected do something with your prevPage
// eg: compare to "position" to check if it's from the left or right
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
if (arg0 == ViewPager.SCROLL_STATE_DRAGGING) {
prevPage = awesomePager.getCurrentItem();
}
}
});