为了账号安全,请及时绑定邮箱和手机立即绑定

android.support.v4.app.fragment 和 androidx.

android.support.v4.app.fragment 和 androidx.

守着星空守着你 2023-09-20 15:27:07
显然,当我尝试创建fragmentActivity 时,有一个Xunder 。import androidx.fragment.app.FragmentActivity但是,当我寻找示例项目时,它会导入android.support.v4.app.fragment。我可以知道有什么区别吗?为什么当我尝试运行自己的项目时会出现以下错误?:java.lang.ClassCastException: com.fragmenttest.helloapp.ui.collection.ViewPagerIndicatorActivity cannot be cast to androidx.fragment.app.Fragment.
查看完整描述

3 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

android.support.v4.app.fragment它是旧 Android 支持片段的包。

androidx.fragment.app.FragmentActivity这是新碎片所在的地方。它取代了以前的包,因为它是一个更干净的命名空间。这也称为 Android X。

您看到的示例可能很旧并且仍然使用旧包。如果我没记错的话 Androidx 是在一两年前推出的。

大多数情况下你可以简单地替换导入,但我认为最好的方法是使用Android Studio的migrate to Androidx


查看完整回答
反对 回复 2023-09-20
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

首先,您使用不同的库。

android.support.v4.app.*包含在支持库中。
androidx.fragment.app.*包含在androidx 库中。

他们不能一起工作。检查要迁移的信息。

那么 an Activity(或子类)就不是Fragment.
无法在 Activity 中投射 Fragment。


查看完整回答
反对 回复 2023-09-20
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

Activity!= Fragment,您java.lang.ClassCastException建议您要投射FragmentActivity

Activity是全屏(大部分),Fragment只是一个样子,有点延伸View。一个人Activity可以处理多个Fragments,例如在更大的屏幕上。

FragmentActivity在支持包中引入,用于处理Fragment较低操作系统版本中的所有功能,现在您应该使用AppCompatActivity哪个extends FragmentActivity


查看完整回答
反对 回复 2023-09-20
  • 3 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信