当我到达最后一项时,寻呼机适配器未注册
Pager adapter not registering when I get to last item
我有一个寻呼机适配器可以在我的应用程序上显示内容。我想让它记住方向改变时它所在的位置。它适用于所有情况,除非我转到最后一个选项卡。它显示得很好,但是当我改变方向时,它会返回到上一个选项卡。它只发生在那种情况下。我添加了一个日志以查看它是否记录了位置的变化,它在除最后一个选项卡之外的所有地方都记录了。
从 onResume 开始:
//A lot of code here
//if no book opened
if (s.getLibro() == null){
s.setLibro("Test");
}
if (s.getCap() == 0){
s.setCap(1);
}
//More code....
MyPagerAdapter adapter = new MyPagerAdapter();
pager = (ViewPager) findViewById(R.id.my_pager);
pager.setAdapter(adapter);
tabIndicator = (TabPageIndicator) findViewById(R.id.tab_indicator);
tabIndicator.setViewPager(pager);
pager.setCurrentItem(s.getCap()-1);
tabIndicator.setCurrentItem(s.getCap()-1);
Log.v(TAG, "FInished onResume");
寻呼机适配器:
private class MyPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return numCap;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
LayoutInflater inflater = (LayoutInflater) container.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final ListView list = (ListView) inflater.inflate(R.layout.capitulo, null);
//set the chapter you left off at, in case you change orientation
s.setCap(position);
//Load content
listll(position);
//Display it
list.setAdapter(new CapituloAdapter(getApplicationContext(), R.layout.content_main, ll));
((ViewPager) container).addView(list, 0);
//Only shows when position is any item from the first to the next to last, doesn't show for last item
Log.v(TAG, "Finished my pager adapter object" + (position-1));
return list;
}
//more code here...
事实行
Log.v(TAG, "Finished my pager adapter object" + (position-1));
当我进入最后一个标签时没有出现让我担心。不确定是什么问题。当我浏览应用程序时,它似乎工作正常(我可以毫无问题地看到最后一个选项卡)。
PagerAdapter
预加载下一页。当您查看第二页时,IE 会 PagerAdapter
加载第三页。您可以通过从最后一个实例化页面中减去 1 来获取当前页面。
由于适配器不加载下一页(因为没有下一页),因此在最后一页中断。
获取当前位置的正确方法是从ViewPager.OnPageChangeListener()
中保存当前位置。
我有一个寻呼机适配器可以在我的应用程序上显示内容。我想让它记住方向改变时它所在的位置。它适用于所有情况,除非我转到最后一个选项卡。它显示得很好,但是当我改变方向时,它会返回到上一个选项卡。它只发生在那种情况下。我添加了一个日志以查看它是否记录了位置的变化,它在除最后一个选项卡之外的所有地方都记录了。
从 onResume 开始:
//A lot of code here
//if no book opened
if (s.getLibro() == null){
s.setLibro("Test");
}
if (s.getCap() == 0){
s.setCap(1);
}
//More code....
MyPagerAdapter adapter = new MyPagerAdapter();
pager = (ViewPager) findViewById(R.id.my_pager);
pager.setAdapter(adapter);
tabIndicator = (TabPageIndicator) findViewById(R.id.tab_indicator);
tabIndicator.setViewPager(pager);
pager.setCurrentItem(s.getCap()-1);
tabIndicator.setCurrentItem(s.getCap()-1);
Log.v(TAG, "FInished onResume");
寻呼机适配器:
private class MyPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return numCap;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
LayoutInflater inflater = (LayoutInflater) container.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final ListView list = (ListView) inflater.inflate(R.layout.capitulo, null);
//set the chapter you left off at, in case you change orientation
s.setCap(position);
//Load content
listll(position);
//Display it
list.setAdapter(new CapituloAdapter(getApplicationContext(), R.layout.content_main, ll));
((ViewPager) container).addView(list, 0);
//Only shows when position is any item from the first to the next to last, doesn't show for last item
Log.v(TAG, "Finished my pager adapter object" + (position-1));
return list;
}
//more code here...
事实行 Log.v(TAG, "Finished my pager adapter object" + (position-1)); 当我进入最后一个标签时没有出现让我担心。不确定是什么问题。当我浏览应用程序时,它似乎工作正常(我可以毫无问题地看到最后一个选项卡)。
PagerAdapter
预加载下一页。当您查看第二页时,IE 会 PagerAdapter
加载第三页。您可以通过从最后一个实例化页面中减去 1 来获取当前页面。
由于适配器不加载下一页(因为没有下一页),因此在最后一页中断。
获取当前位置的正确方法是从ViewPager.OnPageChangeListener()
中保存当前位置。