我在main_activity中向我的ViewPagerAdapter添加了两个片段 我使用LoopingViewPager lib。
文档说:当你使用Fragments时,你必须添加2" fake"你的mFragmentList之外的片段,我在这里做的事情:
var adapter = ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(LogItemPage(logItems.filter { it.type!!.equals(LogItemType.Basic) }),
getString(R.string.fragment_main_basic_title));
adapter.addFragment(LogItemPage(logItems.filter { it.type!!.equals(LogItemType.Extended) }),
getString(R.string.fragment_main_extended_title));
// add two extra Fragments of the same Fragments:
adapter.addFragment(LogItemPage(logItems.filter { it.type!!.equals(LogItemType.Basic) }),
getString(R.string.fragment_main_basic_title));
adapter.addFragment(LogItemPage(logItems.filter { it.type!!.equals(LogItemType.Extended) }),
getString(R.string.fragment_main_extended_title));
viewPager.setAdapter(adapter);
并在我的ViewPagerAdapter中:
override fun getItem(position: Int): Fragment? {
var position2 = LoopViewPager.toRealPosition(position, mFragmentList.size);
var count = mFragmentList.size
var modulo = position2%count
return mFragmentList[modulo]
}
但是我得到了这个错误,当我尝试滑动到viewpager的末尾时 - 前两个真正的碎片都没问题,但是当我滑到最后,所以第一个再次显示它崩溃了:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: ch.zhaw.myapp.android.debug, PID: 9737
java.lang.IllegalStateException: Can't change tag of fragment LogItemPage{16838b #1 id=0x7f0c0086 android:switcher:2131492998:0}: was android:switcher:2131492998:0 now android:switcher:2131492998:4
这是example应该有效,我试图适应。