首页 > 解决方案 > 在我的选项卡式应用程序上寻找正确的语法来设置 setmaxlifecycle

问题描述

我只是一个黑客和新手......我在这个网站上收到了很多很好的信息,但似乎无法找到设置片段最大生命周期的答案,这样当它被选中时,执行onResume()该片段的。

我在 youtube 视频的帮助下创建了一个简单的 3-tab 应用程序,但还没有弄清楚如何正确设置生命周期。我不确定我应该包含多少信息,所以我将从以下内容开始:

val tabLayout: TabLayout = findViewById(R.id.tab_layout)
val viewPager: ViewPager = findViewById(R.id.view_pager)
val viewPagerAdpater = ViewPagerAdapter(supportFragmentManager)

viewPagerAdpater.addFragment(SummaryFragment(), "Summary")
viewPagerAdpater.addFragment(BoxFragment(), "Box")
viewPagerAdpater.addFragment(SettingsFragment(), "Settings")

viewPager.adapter = viewPagerAdpater
tabLayout.setupWithViewPager(viewPager)

我试过这个,它崩溃了:

supportFragmentManager.beginTransaction().setMaxLifecycle(viewPagerAdpater.getItem(1),Lifecycle.State.RESUMED)

还有这个代码:

internal class ViewPagerAdapter(fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager) {

    private val fragments: ArrayList<Fragment>
    private val titles: ArrayList<String>

    init{
        fragments = ArrayList<Fragment>()
        titles = ArrayList<String>()
    }
    
    override fun getItem(position: Int): Fragment {
        return fragments[position]
    }

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

    fun addFragment(fragment: Fragment, title: String){
       fragments.add(fragment)
        titles.add(title)
    }

    override fun getPageTitle(i: Int): CharSequence? {
        return titles[i]
    }
}

谢谢,如果需要更多信息,请告诉我...

标签: kotlintabslifecycle

解决方案


推荐阅读