Ищу правильный синтаксис для установки setmaxlifecycle в моем приложении с вкладками

#kotlin #tabs #lifecycle

#kotlin #вкладки #жизненный цикл

Вопрос:

Я просто хак и новичок…Я получил много хорошей информации на этом сайте, но, похоже, не могу найти ответ на вопрос, как установить максимальный жизненный цикл фрагмента, чтобы при его выборе onResume() выполнялся для этого фрагмента.

Я создал простое приложение с 3 вкладками с помощью видеороликов YouTube и не понял, как правильно настроить жизненный цикл. Я не уверен, сколько информации я должен включить, поэтому я начну с этого:

 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), жизненный цикл.Состояние.ВОЗОБНОВЛЕНО)

Существует также такой код:

 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]
    }
}
 

Спасибо и дайте мне знать, если потребуется дополнительная информация…

Комментарии:

1. Какое сообщение об исключении появляется при сбое?

2. Эмулятор просто говорит, что приложение продолжает останавливаться. Если я закомментирую строку setmaxlifecycle, программа будет работать нормально.