TabLayout设置ViewPager时出现空指针异常
Null Pointer Exception When Setting ViewPager for TabLayout
我有一个片段将包含另外两个可以通过 TabLayout
访问的片段
我有以下 Kotlin 代码:
class TutorialFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val tutorialview = inflater.inflate(R.layout.fragment_tutorial, container, false )
tutorialview.tutorialViewPager.adapter = TutorialFragmentPagerAdapter(context!!, fragmentManager!!)
//Null Pointer Exception on this line
tabBar.setupWithViewPager(tutorialview.tutorialViewPager)
return tutorialview
}
companion object {
fun newInstance() = TutorialFragment()
}
}
我的代码崩溃,异常:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.design.widget.TabLayout.setupWithViewPager(android.support.v4.view.ViewPager)' on a null object reference
at com.vedantroy.animefacekeyboard.home.tutorial.TutorialFragment.onCreateView(TutorialFragment.kt:23)
更新 1 -
根据Tuby的建议,
我将代码更改为:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
Log.d("KEYBOARD-APP","Inside tutorial fragment onCreate()...")
val tutorialView = inflater.inflate(R.layout.fragment_tutorial, container, false )
tutorialView.tutorialViewPager.adapter = TutorialFragmentPagerAdapter(fragmentManager!!)
tutorialView.tabBar.setupWithViewPager(tutorialView.tutorialViewPager)
return tutorialView
}
但是,虽然片段本身现在正在显示,但选项卡并未显示。
错误清楚地表明 TabLayout
为空
尝试改变
tabBar.setupWithViewPager(tutorialview.tutorialViewPager)
到
tutorialview.tabBar.setupWithViewPager(tutorialview.tutorialViewPager)
由于某些原因,androidstudio 不会在顶部自动导入库,我建议您手动导入。
将其添加为 TutorialFragment 中的顶级声明
import com.google.android.material.tabs.TabLayout
我有一个片段将包含另外两个可以通过 TabLayout
我有以下 Kotlin 代码:
class TutorialFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val tutorialview = inflater.inflate(R.layout.fragment_tutorial, container, false )
tutorialview.tutorialViewPager.adapter = TutorialFragmentPagerAdapter(context!!, fragmentManager!!)
//Null Pointer Exception on this line
tabBar.setupWithViewPager(tutorialview.tutorialViewPager)
return tutorialview
}
companion object {
fun newInstance() = TutorialFragment()
}
}
我的代码崩溃,异常:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.design.widget.TabLayout.setupWithViewPager(android.support.v4.view.ViewPager)' on a null object reference
at com.vedantroy.animefacekeyboard.home.tutorial.TutorialFragment.onCreateView(TutorialFragment.kt:23)
更新 1 -
根据Tuby的建议,
我将代码更改为:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
Log.d("KEYBOARD-APP","Inside tutorial fragment onCreate()...")
val tutorialView = inflater.inflate(R.layout.fragment_tutorial, container, false )
tutorialView.tutorialViewPager.adapter = TutorialFragmentPagerAdapter(fragmentManager!!)
tutorialView.tabBar.setupWithViewPager(tutorialView.tutorialViewPager)
return tutorialView
}
但是,虽然片段本身现在正在显示,但选项卡并未显示。
错误清楚地表明 TabLayout
为空
尝试改变
tabBar.setupWithViewPager(tutorialview.tutorialViewPager)
到
tutorialview.tabBar.setupWithViewPager(tutorialview.tutorialViewPager)
由于某些原因,androidstudio 不会在顶部自动导入库,我建议您手动导入。
将其添加为 TutorialFragment 中的顶级声明
import com.google.android.material.tabs.TabLayout