类型在kotlin中不匹配

我是Kotlin语言和面向对象编程的新手,所以我想知道为什么在Android中从类Fragment()继承的类的实例类型是错误的。 这些是我的代码

Fragment.kt

class MyFragment: Fragment() { //do something } 

MainActivity.kt

 class MainActivity : AppCompatActivity() { val fm : Fragment? = MyFragment() ... } 

为什么返回MyFragment类型,而不是片段? ?? 谢谢

我太傻了,我导入了2个不同的Fragment包()

解决的办法是2个文件必须导入android.app.Fragment

使用

  changeFragment(MyFragment()) 

方法应该是这样的

  fun changeFragment(f: Fragment, cleanStack: Boolean = false) { val ft = supportFragmentManager.beginTransaction(); if (cleanStack) { clearBackStack(); } ft.replace(R.id.activity_base_content, f); ft.addToBackStack(null); ft.commit(); } fun clearBackStack() { val manager = supportFragmentManager; if (manager.backStackEntryCount > 0) { val first = manager.getBackStackEntryAt(0); manager.popBackStack(first.id, FragmentManager.POP_BACK_STACK_INCLUSIVE); } }