我是Kotlin语言和面向对象编程的新手,所以我想知道为什么在android中从类Fragment()继承的类的实例是错误的。这些是我的代码
class MainActivity : AppCompatActivity() {
val fm : Fragment? = MyFragment()
...
}
{{1}}
为什么fm返回 MyFragment 类型,而不是片段?? 谢谢
答案 0 :(得分:1)
我非常愚蠢,我为Fragment()
导入了2个不同的包解决方案是必须导入2个文件android.app.Fragment
答案 1 :(得分:0)
使用
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);
}
}