我创建了一个这样的自定义视图寻呼机:
public class TaskPagerAdapter extends FragmentStatePagerAdapter {
public TaskPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
switch (position) {
case 0:
fragment = new NotificationFragment();
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
}
return fragment;
}
@Override
public int getCount() {
return 5;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
并用于主片段:
mPagerAdapter = new TaskPagerAdapter(getFragmentManager());
mViewPager.setAdapter(mPagerAdapter);
mViewPager.setCurrentItem(-2);
在 setCurrentItem 中的我必须使用哪个号码,直到我没有得到nullpoiner错误?我希望NotificationFragment()类首先在view pager上启动
修改
whit mViewPager.setCurrentItem(-1);我得到了打击错误:
Process: safarayaneh.com.anotify.debug, PID: 21484
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.Fragment.setMenuVisibility(boolean)' on a null object reference
at android.support.v4.app.FragmentStatePagerAdapter.instantiateItem(FragmentStatePagerAdapter.java:120)
at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1034)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1248)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1116)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1642)
at android.view.View.measure(View.java:18788)
at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:1028)...
答案 0 :(得分:1)
设置当前选择的页面。如果ViewPager已经存在 通过其当前适配器的第一个布局将有一个 当前项和指定项之间的平滑动画过渡 项目
<强>问题强>
mViewPager.setCurrentItem(-1);
请勿设置 -1 or -2
。 索引从0开始。
修改强>
switch (position) {
case 0:
fragment = new NotificationFragment();
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
}
return fragment;
为什么1,2,3,4 BLANK 。你应该试试
switch (position) {
case 0:
fragment = new NotificationFragment();
break;
}
return fragment;
<强> mViewPager.setCurrentItem(0); 强>
答案 1 :(得分:0)
由于NotificationFragment具有第一个位置。 它的索引是0。
因此,它应该类似于mViewPager.setCurrentItem(0);