日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android项目开发填坑记-Fragment的onAttach

發(fā)布時(shí)間:2023/12/2 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android项目开发填坑记-Fragment的onAttach 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

背景

現(xiàn)在Android開發(fā)多使用一個(gè)Activity管理多個(gè)Fragment進(jìn)行開發(fā),不免需要兩者相互傳遞數(shù)據(jù),一般是給Fragment添加回調(diào)接口,讓Activity繼承并實(shí)現(xiàn)。

回調(diào)接口一般都寫在Fragment的onAttach()方法中,Fragment 3.0 的onAttach()方法有2個(gè)重載,其中一個(gè)被廢棄,所以通常是:

XX_Fragment extends Fragment(Fragment 3.0)

@Overridepublic void onAttach(Context context) {if (context instanceof OnCoverChangeListener) {mListener = (ABC_Listener) context;} else {throw new RuntimeException(context.toString()+ " must implement ABC_Listener");}super.onAttach(context);}

但是在一些特定的Android版本下,這個(gè)onAttach(Context context)并未被調(diào)用,而是調(diào)用了廢棄的onAttach(Activity activity)方法。

解決方案

如果使用了Fragment 3.0,并且用到了自定義回調(diào),那么為了兼容,需要:

@Overridepublic void onAttach(Context context) {if (context instanceof OnCoverChangeListener) {mListener = (ABC_Listener) context;} else {throw new RuntimeException(context.toString()+ " must implement ABC_Listener");}super.onAttach(context);}//SDK API<23時(shí),onAttach(Context)不執(zhí)行,需要使用onAttach(Activity)。Fragment自身的Bug,v4的沒有此問題@Overridepublic void onAttach(Activity activity) {super.onAttach(activity);if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {if (activity instanceof OnCoverChangeListener) {mListener = (ABC_Listener) activity;} else {throw new RuntimeException(activity.toString()+ " must implement ABC_Listener");}}}

總結(jié)

建議使用FragmentV4版的,減少不必要的系統(tǒng)自身Bug的處理。

還有一篇關(guān)于FragmentV4、Fragment3.0的onBackPressed();的Bug詳解:
傳送門:Android項(xiàng)目開發(fā)填坑記-Fragmen的onBackPressed

PS:

你可以關(guān)注的我Github、CSDN和微博

轉(zhuǎn)載于:https://www.cnblogs.com/wuyida/p/6300471.html

總結(jié)

以上是生活随笔為你收集整理的Android项目开发填坑记-Fragment的onAttach的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。