我使用NagivationDrawer
以及ViewPager
为我的应用程序。当用户在抽屉中选择一个项目时,视图寻呼机将相应地设置片段。为什么在mViewPager.setCurrentItem(value)处传递的值在FragmentStatePagerAdapter的getItem(int value)方法中增加或减少
在MainActivity类别
....
@Override
public void onNavigationDrawerItemSelected(int position) {
Log.d("POSITION", "=======================================");
Log.d("POSITION ItemSelected", position +"");
if(mViewPager != null){
mViewPager.setCurrentItem(position);
}
}
......
我ViewPagerAdapter类是
public class LessonPageAdapter extends FragmentStatePagerAdapter {
public LessonPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new LessonFragment();
Bundle args = new Bundle();
Log.d("POSITION PagerAdapter", position +"");
args.putInt(LessonFragment.ARG_SECTION_NUMBER, position);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
return 7;
}
}
我发现的position
主叫mViewPager.setCurrentItem(position)
从onNavigationDrawerItemSelected(int position)
方法是不同的,当我传递值从(递增或递减) position
的值我得到getItem(int position)
方法FragmentStatePagerAdapter
。
11-01 12:31:59.706 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION﹕ =======================================
11-01 12:31:59.706 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION ItemSelected﹕ 1
11-01 12:31:59.706 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION PagerAdapter﹕ 2
11-01 12:32:11.089 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION﹕ =======================================
11-01 12:32:11.089 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION ItemSelected﹕ 2
11-01 12:32:11.090 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION PagerAdapter﹕ 3
11-01 12:32:18.586 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION﹕ =======================================
11-01 12:32:18.586 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION ItemSelected﹕ 3
11-01 12:32:18.586 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION PagerAdapter﹕ 4
11-01 12:32:29.474 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION﹕ =======================================
11-01 12:32:29.474 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION ItemSelected﹕ 4
11-01 12:32:29.475 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION PagerAdapter﹕ 5
11-01 12:32:35.476 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION﹕ =======================================
11-01 12:32:35.477 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION ItemSelected﹕ 5
11-01 12:32:35.477 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION PagerAdapter﹕ 6
11-01 12:32:43.704 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION﹕ =======================================
11-01 12:32:43.704 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION ItemSelected﹕ 6
11-01 12:32:51.287 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION﹕ =======================================
11-01 12:32:51.287 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION ItemSelected﹕ 5
11-01 12:32:51.287 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION PagerAdapter﹕ 4
11-01 12:33:00.529 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION﹕ =======================================
11-01 12:33:00.530 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION ItemSelected﹕ 4
11-01 12:33:00.530 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION PagerAdapter﹕ 3
11-01 12:33:09.084 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION﹕ =======================================
11-01 12:33:09.084 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION ItemSelected﹕ 3
11-01 12:33:09.084 8913-8913/com.example.khaino.drawerandswipedemo D/POSITION PagerAdapter﹕ 2
有谁能告诉我原因吗?解决办法是什么?
谢谢......现在我知道为什么onNavigationDrawerItemSelected(int position)方法和getItem(int position)方法中'position'的值是不同的...... –