如何在已创建列表之后修改片段内的ViewPager片段列表

时间:2018-06-06 16:03:25

标签: android arraylist kotlin android-viewpager fragment

我正在尝试在按下按钮时用另一个片段替换片段。我已经创建了一个列表,我在其中添加了我想要在开始时加载的片段。问题是我在FragmentStatePagerAdapter

中创建了一个函数
private val list: MutableList<Fragment> = ArrayList()

override fun getItem(position: Int): Fragment {
    return list[position]
}

override fun getCount(): Int {
    return list.size
}

fun addFragment(fragment: Fragment){
    list.add(fragment)
}

fun replaceFragment(replaceAt: Int, fragment: Fragment){
    list.removeAt(replaceAt)
    list.add(fragment)
}

调用replaceFragment(..),我在其中替换列表中的片段。当我试图在MainActivity中调用此函数时:

fun replace(){
    adapter.replaceFragment(2, AnonymousFragment()) }

并且在片段MainActivity().replace()内访问它,我得到IndexOutOfBoundsException: Index: 2, Size: 0。那么,有没有办法在Fragment中调用adapter.replaceFragment(..)方法而不会出现异常?

编辑:例如,当我尝试从fragmentList:adapter.count.toString()返回列表大小时,我得到3,但是当我尝试从片段中获取它时:{{1}我得到0.基本上,我需要从片段访问列表。

0 个答案:

没有答案