1.问题的发现
在进行初步安卓学习时,我首先接触到了Fragment这一用来实现界面转换的工具,但在使用时发现了一些问题。当创建Fragment类时根据学习视频让它继承了Fragment。
但在activity中使用add,replace等函数时会报参数不匹配,所需参数为android.app.fragment的形式;这一问题让我思索了好久。
2.问题的解决
首先我在activity中import了android.app.fragment但仍显示它并未被使用,之后经过大量的信息查询发现是fragment继承的问题;当新建的fragment类继承android.app.Fragment时,
报出的错误就消失了。
3.问题的根源
经过我又一次大量的查找发现了根源的所在:fragment存在于两个类中(androidx.fragment.app.Fragment和android.app.Fragment) ,它们是不能混用的。如果直接继承fragment
在我的配置下是会继承androidx.fragment.app.Fragment这一个类但我使用的方法是android.app.Fragment这一个类中的所以会报错。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
补充:
在我进一步学习后我发现两者混用出现的情况大多与FragmentManager和FragmentTransaction使用时导包不注意有关。