Android Kotlin 中的片段类型不匹配

2024-04-02

我将一步步尝试在 Kotlin/Android 中创建一个简单的选项卡布局。我对我发现的很多教程感到非常沮丧,因为它们要么 1) 有效,但设计过度,很难看出发生了什么,要么 2) 似乎不起作用。

这是情况 2) 中的一种,非常接近工作,但有一些问题。我已经确定了问题,但不知道如何解决。

http://www.techotopia.com/index.php/Kotlin_-_Creating_a_Tabbed_Interface_using_the_TabLayout_Component http://www.techotopia.com/index.php/Kotlin_-_Creating_a_Tabbed_Interface_using_the_TabLayout_Component

我的一切都与教程中的完全一样,我遇到的唯一错误是在这部分:

package com.ebookfrenzy.tablayoutdemo

import android.support.v4.app.Fragment
import android.support.v4.app.FragmentManager
import android.support.v4.app.FragmentPagerAdapter

class TabPagerAdapter(fm: FragmentManager, private var tabCount: Int) : 
            FragmentPagerAdapter(fm) {

    override fun getItem(position: Int): Fragment? {

        when (position) {
            0 -> return Tab1Fragment()
            1 -> return Tab2Fragment()
            2 -> return Tab3Fragment()
            3 -> return Tab4Fragment()
            else -> return null
        }
    }

    override fun getCount(): Int {
        return tabCount
    }
}

我明白了Tab1Fragment(), Tab2...全部都不是类型Fragment这是的返回类型fun getItem。这很令人困惑,因为它们是这样声明的类:

class Tab1Fragment : Fragment()

看起来对我来说应该没问题。

这是我所看到的图片,以防有人不相信我。

https://i.stack.imgur.com/s2pjG.jpg https://i.stack.imgur.com/s2pjG.jpg

有人可以建议发生什么事吗?


您的代码中有两个可能的错误

你的片段延伸android.support.v4.app.FragmentgetItem()适配器中的方法返回一个android.app.Fragment或相反亦然。

无论如何,请确保您的片段和适配器方法最好返回相同的类型android.support.v4.app.Fragment现在就可以走了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Kotlin 中的片段类型不匹配 的相关文章