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

显然,当我尝试创建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.


守着星空守着你
浏览 112回答 3
3回答

至尊宝的传说

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

慕姐4208626

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

呼啦一阵风

Activity!= Fragment,您java.lang.ClassCastException建议您要投射Fragment到ActivityActivity是全屏(大部分),Fragment只是一个样子,有点延伸View。一个人Activity可以处理多个Fragments,例如在更大的屏幕上。FragmentActivity在支持包中引入,用于处理Fragment较低操作系统版本中的所有功能,现在您应该使用AppCompatActivity哪个extends FragmentActivity
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java