我一直在寻找,但我找不到任何答案。我有ViewPagerIndicator在我的应用程序中工作,但我找不到任何教程,显示如何使用超过3页。我想用6页。我可以正确显示6页但是当我在第0页输入数据时,它会在我滑到第3页后被消失(被回收?)。我已经阅读了ViewPagerIndicator.java,但说实话,大部分时间都是我的头脑。当滑到第3页时,我需要做什么来保存第0页的数据。有人可以给我一个例子。另外,在刷回第0页时,我用什么来恢复数据?
免责声明:我对Java和Android开发都很陌生;这是我的第一个应用程序。
提前感谢任何人都可以提供的任何指导。
答案 0 :(得分:2)
您应该使用ViewPager.setOffscreenPageLimit(5)。这将允许您有1个屏幕页面和5个屏幕外页面,全部在内存中。默认值为1,这就是为什么当您到达第3页时,您会看到第0页被删除的原因。
或者,您可以实现instantiateItem来创建/加载每个页面,使用destroyItem来保存PagerAdapter中的每个页面,如http://developer.android.com/reference/android/support/v4/view/PagerAdapter.html中所述
答案 1 :(得分:0)
回答你的问题:
要显示> 3页,比如6页,您只需在ViewPager上添加6页,ViewPagerIndicator将自动更新以显示6个圆圈(指标)
要保存数据,我建议您设置一个类似于此处提到的onPageChangeListener https://github.com/JakeWharton/Android-ViewPagerIndicator/blob/master/sample/src/com/viewpagerindicator/sample/SampleCirclesWithListener.java
您可以定义滚动页面时要执行的任何操作...
mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
Toast.makeText(SampleCirclesWithListener.this, "Changed to page " + position, Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//save the data here
}
@Override
public void onPageScrollStateChanged(int state) {
}
});