欢迎光临散文网 会员登陆 & 注册

Android开发从入门到精通(项目案例版)

2023-02-19 21:50 作者:渡尘羽  | 我要投稿

关于FragmentTransaction对象调用add方法爆红"Cannot resolve method 'add' "的解决方法


这个不是由API版本造成的,这是由于包不匹配造成的,也就是你自定义的fragment类继承了Fragment,但是这个父类Fragment是androidx.fragment.app.Fragment包中的,而add()方法属于FragmentTransaction,FragmentTransaction是属于android.app.Fragment包中的,所以出现了不匹配的现象(也就是V7、V4版本同时存在)


解决方案:在继承Fragment类时候,选择属于包android.app.Fragment的

//参考文献写在最后

以下为我的解决办法

第一步:来到 DetailFragment.java(图一)

删除import android.support.v4.app.Fragment;

第二步:Fragment会爆红,不过不必担心,选中Fragment,快捷键alt + enter,选择Import class(图二).

第三步:选择第一个选项:(图三)

Fragment(android.app)

选择之后系统会自动导入这个包.如果发现add不爆红了,恭喜你,你踩的和我是同一个坑(狗头);

成功运行(图四)

细心听完老师讲解的小伙伴可能已经发现我add方法的指定容器参数用的是R.id.f1,老师也在课中讲解了的.只是在LinearLayout里面套了个帧布局,f1是帧布局的id,防止字体合在一起.


一些题外话

本人软件版本Android Studio 2.3.3

Sdk为Android 8.0(O)

如果笔记中有疏漏,请在评论区@我,我愿意改正.


最后是参考资料,感谢前辈们知识的分享.

原文链接:https://blog.csdn.net/weixin_44870139/article/details/112788504

原文链接:https://blog.csdn.net/cui_xiaoyu/article/details/109117967

Android开发从入门到精通(项目案例版)的评论 (共 条)

分享到微博请遵守国家法律