3 回答

TA贡献1789条经验 获得超10个赞
android.support.v4.app.fragment
它是旧 Android 支持片段的包。
androidx.fragment.app.FragmentActivity
这是新碎片所在的地方。它取代了以前的包,因为它是一个更干净的命名空间。这也称为 Android X。
您看到的示例可能很旧并且仍然使用旧包。如果我没记错的话 Androidx 是在一两年前推出的。
大多数情况下你可以简单地替换导入,但我认为最好的方法是使用Android Studio的migrate to Androidx

TA贡献1852条经验 获得超7个赞
首先,您使用不同的库。
android.support.v4.app.*
包含在支持库中。androidx.fragment.app.*
包含在androidx 库中。
他们不能一起工作。检查要迁移的信息。
那么 an Activity
(或子类)就不是Fragment
.
您无法在 Activity 中投射 Fragment。

TA贡献1802条经验 获得超6个赞
Activity
!= Fragment
,您java.lang.ClassCastException
建议您要投射Fragment
到Activity
Activity
是全屏(大部分),Fragment
只是一个样子,有点延伸View
。一个人Activity
可以处理多个Fragment
s,例如在更大的屏幕上。
FragmentActivity
在支持包中引入,用于处理Fragment
较低操作系统版本中的所有功能,现在您应该使用AppCompatActivity
哪个extends FragmentActivity
添加回答
举报