Android開發(fā)從入門到精通(項目案例版)

關于FragmentTransaction對象調用add方法爆紅"Cannot resolve method 'add' "的解決方法
這個不是由API版本造成的,這是由于包不匹配造成的,也就是你自定義的fragment類繼承了Fragment,但是這個父類Fragment是androidx.fragment.app.Fragment包中的,而add()方法屬于FragmentTransaction,F(xiàn)ragmentTransaction是屬于android.app.Fragment包中的,所以出現(xiàn)了不匹配的現(xiàn)象(也就是V7、V4版本同時存在)
解決方案:在繼承Fragment類時候,選擇屬于包android.app.Fragment的
//參考文獻寫在最后
以下為我的解決辦法

第一步:來到?DetailFragment.java(圖一)
刪除import android.support.v4.app.Fragment;
第二步:Fragment會爆紅,不過不必擔心,選中Fragment,快捷鍵alt + enter,選擇Import class(圖二).

第三步:選擇第一個選項:(圖三)
Fragment(android.app)

選擇之后系統(tǒng)會自動導入這個包.如果發(fā)現(xiàn)add不爆紅了,恭喜你,你踩的和我是同一個坑(狗頭);
成功運行(圖四)

細心聽完老師講解的小伙伴可能已經(jīng)發(fā)現(xiàn)我add方法的指定容器參數(shù)用的是R.id.f1,老師也在課中講解了的.只是在LinearLayout里面套了個幀布局,f1是幀布局的id,防止字體合在一起.
一些題外話
本人軟件版本Android Studio 2.3.3
Sdk為Android 8.0(O)
如果筆記中有疏漏,請在評論區(qū)@我,我愿意改正.
最后是參考資料,感謝前輩們知識的分享.
原文鏈接:https://blog.csdn.net/weixin_44870139/article/details/112788504
原文鏈接:https://blog.csdn.net/cui_xiaoyu/article/details/109117967