【发布时间】:2020-01-03 19:51:00
【问题描述】:
我想在我的片段中显示我的TabLayout,但他想要可以为空的supportFragmentManager:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val fragmentAdapter = MyPagerAdapter(activity?.supportFragmentManager)
viewpager_main.adapter = fragmentAdapter
tabs_main.setupWithViewPager(viewpager_main)
}
这是我的适配器:
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
import com.mandarine.targetList.features.targets.list.TargetsFragment
class MyPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) {
override fun getItem(position: Int): Fragment {
return when (position) {
0 -> {
TargetsFragment()
}
1 -> SecondFragment()
else -> {
return FirstFragment()
}
}
}
override fun getCount(): Int {
return 3
}
override fun getPageTitle(position: Int): CharSequence {
return when (position) {
0 -> "First Tab"
1 -> "Second Tab"
else -> {
return "Third Tab"
}
}
}
}
如何重写我的 val?
val fragmentAdapter = activity?.supportFragmentManager?.let { MyPagerAdapter(it) }
java.lang.IllegalStateException: viewpager_main 不能为空
FragmentPagerAdapter 也被弃用了,mb 需要使用 smth new 吗?
【问题讨论】:
-
你需要在
onViewCreated而不是onCreate的片段中访问你的视图 -
@MohammedAlaa 但如果我在 onViewCreated 中写
val fragmentAdapter = activity?.supportFragmentManager我会得到可为空的 fragmentAdapter -
是的,但这是正常检查this
标签: android kotlin android-adapter android-tablayout androidx