如何实现获取和返回LifeCycle的方法

时间:2019-06-19 06:57:04

标签: android android-recyclerview lifecycle page-lifecycle android-viewpager2

FragmentStateAdapter在询问LifeCycle时遇到问题,请在下面的代码行中帮助我设置和传递LifeCycle。

viewPager2.adapter = myViewPagerAdapter(supportFragmentManager, getCurrentLifeCycle())

这是myViewPagerAdapter方法

private fun myViewPagerAdapter(fm: FragmentManager, lifeCycle: Lifecycle): RecyclerView.Adapter<*> {
    //val items = items // avoids resolving the ViewModel multiple times

    return object : FragmentStateAdapter(fm, lifeCycle) {
        override fun getItemCount(): Int {
            // Show fragments.size total pages.
            return fragments.size
        }

        private val fragments = arrayOf(
            MyPostsFragment(),
            RecentPostsFragment()
        )

        override fun createFragment(position: Int): Fragment {
            return fragments[position]
        }

    }
}

经过一番挖掘,我明白了,LifeCycle是@NonNull

public FragmentStateAdapter(@NonNull FragmentManager fragmentManager,
        @NonNull Lifecycle lifecycle) {
    mFragmentManager = fragmentManager;
    mLifecycle = lifecycle;
    super.setHasStableIds(true);
}

帮我完成此方法以返回当前的LifeCycle

private fun getCurrentLifeCycle(): LifeCycle { return ??? }

1 个答案:

答案 0 :(得分:1)

只需调用getLifecycle()即可返回一个LifeCycle对象。

查看更多:https://developer.android.com/reference/android/arch/lifecycle/LifecycleOwner.html#getLifecycle()