【发布时间】:2018-02-19 05:42:30
【问题描述】:
我将一步一步尝试在 Kotlin/Android 中创建一个简单的选项卡布局。我对我发现的许多教程感到非常沮丧,因为它们要么 1) 有效,但设计过度,很难看到正在发生的事情,或者 2) 似乎不起作用。
这是案例 2) 中的一种,它非常接近工作,但出现了问题。我已经发现了问题,但不知道如何解决。
我拥有与教程中完全相同的所有内容,我得到的唯一错误是这部分:
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()
我觉得应该没问题。
这是我所看到的图片,以防有人不相信我。
有人能告诉我发生了什么吗?
【问题讨论】:
-
你的
Tab4Fragment等是否扩展android.support.v4.app.Fragment? -
你的片段是否扩展
android.support.v4.app.Fragment或android.app.Fragment -
检查所有 Tab 片段中的导入语句。它应该是'import android.support.v4.app.Fragment'
标签: android android-fragments tabs kotlin type-mismatch