android - 没有适配器连接到 viewpager2

标签 android kotlin android-viewpager2

我一直在尝试在 kotlin 中实现 viewpager2,但我无法弄清楚为什么我收到一个错误,说没有适配器连接到回收 View
这是我的 MainActivity.kt:


class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        binding = ActivityMainBinding.inflate(layoutInflater)
        binding.viewpager2.adapter = Viewpager2Adapter(this)
        TabLayoutMediator(binding.tabLayout , binding.viewpager2){
                tab, position ->
            tab.text = "OBJECT ${(position + 1)}"
        }.attach()
    }

}

下面是 viewpager2Adapter.kt::

class Viewpager2Adapter(fa : FragmentActivity): FragmentStateAdapter(fa)  {
    override fun getItemCount(): Int = 3

    override fun createFragment(position: Int): Fragment= Fragment2()

}
这是我的 fragment2.kt::
class Fragment2 : Fragment() {

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        return inflater.inflate(R.layout.fragment_2, container, false)
    }
}
有人可以通过找出我做错了什么来帮助我。
先感谢您 :)

最佳答案

我认为您没有在 MainActivity 中正确使用 View 绑定(bind)。
在 setContentView 你应该有 binding.root 而不是 R.layout.activity_main
下面是 MainActivity 中 onCreate 函数的代码:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    val view = binding.root
    setContentView(view)

    viewpager2Adapter = Viewpager2Adapter(this)
    viewPager2 = binding.viewpager2
    tabLayout = binding.tabLayout
    viewPager2.adapter = viewpager2Adapter


    TabLayoutMediator(tabLayout, viewPager2){
            tab, position ->
        tab.text = "OBJECT ${(position + 1)}"
    }.attach()
}

关于android - 没有适配器连接到 viewpager2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63426140/

相关文章:

Androidannotations + Android Studio(几乎可以工作)

android - Parse.com 登录参数无效

android - 为什么 Android ViewPager2 类是最终类?

android - ViewPager2 的 OnTouchListener

kotlin - 在 Kotlin 中链接对象的更简单或更实用的方法

android - 当页面在 ViewPager2 中不可见时如何停止视频

android - 在 Android 中加载大量短裤

android - Cocos2dx 在 setup.py 中为 android 重置或更改环境变量

list - 将 child 放在一个列表中

javascript - 如何将 kotlin 与 Node.js 集成