最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Fragment 多層嵌套方法調(diào)用問題的解決方案

 更新時(shí)間:2016年08月25日 14:31:56   作者:NELA  
這篇文章主要介紹了Fragment 多層嵌套方法調(diào)用問題的解決方案的相關(guān)資料,需要的朋友可以參考下

Fragment的產(chǎn)生與介紹

Android運(yùn)行在各種各樣的設(shè)備中,有小屏幕的手機(jī),超大屏的平板甚至電視。針對(duì)屏幕尺寸的差距,很多情況下,都是先針對(duì)手機(jī)開發(fā)一套App,然后拷貝一份,修改布局以適應(yīng)平板神馬超級(jí)大屏的。難道無法做到一個(gè)App可以同時(shí)適應(yīng)手機(jī)和平板么,當(dāng)然了,必須有啊。Fragment的出現(xiàn)就是為了解決這樣的問題。你可以把Fragment當(dāng)成Activity的一個(gè)界面的一個(gè)組成部分,甚至Activity的界面可以完全有不同的Fragment組成,更帥氣的是Fragment擁有自己的生命周期和接收、處理用戶的事件,這樣就不必在Activity寫一堆控件的事件處理的代碼了。更為重要的是,你可以動(dòng)態(tài)的添加、替換和移除某個(gè)Fragment。

Fragment的生命周期

Fragment必須是依存與Activity而存在的,因此Activity的生命周期會(huì)直接影響到Fragment的生命周期。官網(wǎng)這張圖很好的說明了兩者生命周期的關(guān)系:

下面介紹下Fragment多層嵌套情況下如何解決方法調(diào)用的問題

可能會(huì)出現(xiàn)同一個(gè)Activity中

對(duì)象1: A fragment

對(duì)象2:B fragment 中 a listview 或 a viewadapter

交互情況:B fragment 中的某一界面 獲取到信息后(可能是網(wǎng)絡(luò)信息等),傳遞給A fragment 或者 A fragment 處理過事件后又要通知B fragment 下的界面做出改變。

方案1

調(diào)用方法 通過中間人 Activity

在B fragment 內(nèi) 通過中間人 Activity 獲取到 A fragment 對(duì)象 調(diào)用A fragment 中的方法

弊端: 當(dāng)有很多層時(shí) 這種中間人的獲取就變成了多層中間人 ,需要處理中間人很多次

例如:想要調(diào)用在B fragment 中的 viewpager 的list 中的 pager類父類 的子類對(duì)象中的方法時(shí)

1,子類對(duì)象需要重寫該方法

2,需要將父類定義該方法

3,需要將B fragment 中找到list 中的子類對(duì)象并調(diào)用該方法

4,需要在A Fragment 中找到 Bfragment 對(duì)象 調(diào)用該方法

由此可見 當(dāng)嵌套方式越復(fù)雜, 這個(gè)方法需要處理的 層次關(guān)系就越多。。。所以采用方案2

方案2

接口方式

在A fragment 中 定義接口

這里展示案例 通過定義接口的方式在Afragment 調(diào)用B fragment 的方法:

public class A_Fragment extends BaseFragment { 
private onSwitchpaperListener onSwitchpaperListener; 
//定義接口和接口方法 
public interface onSwitchpaperListener{ 
void switchpaper(int i); 
} 
//對(duì)外提供一個(gè)設(shè)置監(jiān)聽的方法。 
public void setOnSwichtpaerListener(onSwitchpaperListener listener){ 
this.onSwitchpaperListener=listener; 
} 
@Override 
public void intiEvent() { 
//這這之前處理了很多邏輯和信息后需要將消息通過Afragment 傳遞給B了 
if(onSwitchpaperListener!=null){ 
onSwitchpaperListener.switchpaper(position); 
}else { 
} 
} 
}

而Bfragment 只需要 實(shí)現(xiàn)接口并 重寫接口方法 即可被A fragment 調(diào)用

在B fragment 中的 許多莫名嵌套內(nèi)的類中:

mainActivity.getAFragment().setOnSwichtpaerListener(new Slidingleft_Fragment.onSwitchpaperListener() { 
@Override 
public void switchpaper(int i) { 
BaseCenterPaper currentPaper= baseCenterPaperList.get(i); 
tv_title.setText(lists.get(i).getTitle()); 
//先移除 
fl.removeAllViews(); 
currentPaper.initData(); 
fl.addView(currentPaper.getRoot()); 
} 
}); 

以上所述是小編給大家介紹的Fragment 多層嵌套方法調(diào)用問題的解決方案,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • android自定義Toast設(shè)定顯示時(shí)間

    android自定義Toast設(shè)定顯示時(shí)間

    這篇文章主要為大家詳細(xì)介紹了android自定義Toast設(shè)定顯示時(shí)間,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android ViewPager無限循環(huán)實(shí)現(xiàn)底部小圓點(diǎn)動(dòng)態(tài)滑動(dòng)

    Android ViewPager無限循環(huán)實(shí)現(xiàn)底部小圓點(diǎn)動(dòng)態(tài)滑動(dòng)

    這篇文章主要為大家詳細(xì)介紹了Android ViewPager無限循環(huán)實(shí)現(xiàn)底部小圓點(diǎn)動(dòng)態(tài)滑動(dòng)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Android從服務(wù)器獲取圖片的實(shí)例方法

    Android從服務(wù)器獲取圖片的實(shí)例方法

    Android從服務(wù)器獲取圖片的實(shí)例方法,需要的朋友可以參考一下
    2013-06-06
  • Android實(shí)現(xiàn)關(guān)機(jī)后數(shù)據(jù)不會(huì)丟失問題

    Android實(shí)現(xiàn)關(guān)機(jī)后數(shù)據(jù)不會(huì)丟失問題

    這篇文章主要介紹了Android實(shí)現(xiàn)關(guān)機(jī)后數(shù)據(jù)不會(huì)丟失問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Presenting?Streams?in?Flutter小技巧

    Presenting?Streams?in?Flutter小技巧

    這篇文章主要為大家介紹了Presenting?Streams?in?Flutter小技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Android?數(shù)據(jù)結(jié)構(gòu)全面總結(jié)分析

    Android?數(shù)據(jù)結(jié)構(gòu)全面總結(jié)分析

    這篇文章主要為大家介紹了Android?數(shù)據(jù)結(jié)構(gòu)全面總結(jié)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Room Kotlin API的使用入門教程

    Room Kotlin API的使用入門教程

    這篇文章主要介紹了Room Kotlin API使用入門教程,幫助大家更好的理解和學(xué)習(xí)使用并且測(cè)試 Room Kotlin API,感興趣的朋友可以了解下
    2021-04-04
  • 談一談Android內(nèi)存泄漏問題

    談一談Android內(nèi)存泄漏問題

    談一談Android內(nèi)存泄漏問題,圍繞內(nèi)存泄露的定義、內(nèi)存泄露的原理、內(nèi)存泄露的解決方法進(jìn)行探討,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 深入學(xué)習(xí)Android?ANR?的原理分析及解決辦法

    深入學(xué)習(xí)Android?ANR?的原理分析及解決辦法

    Android系統(tǒng)中,AMS和WMS會(huì)檢測(cè)App的響應(yīng)時(shí)間,如果App在特定時(shí)間無法相應(yīng)屏幕觸摸或鍵盤輸入時(shí)間,或者特定事件沒有處理完畢,就會(huì)出現(xiàn)ANR。本文將帶領(lǐng)大學(xué)深入學(xué)習(xí)一下ANR的原理及解決辦法,感興趣的同學(xué)可以學(xué)習(xí)一下
    2021-11-11
  • Android?內(nèi)存優(yōu)化知識(shí)點(diǎn)梳理總結(jié)

    Android?內(nèi)存優(yōu)化知識(shí)點(diǎn)梳理總結(jié)

    這篇文章主要介紹了Android?內(nèi)存優(yōu)化知識(shí)點(diǎn)梳理總結(jié),Android?操作系統(tǒng)給每個(gè)進(jìn)程都會(huì)分配指定額度的內(nèi)存空間,App?使用內(nèi)存來進(jìn)行快速的文件訪問交互,長(zhǎng)時(shí)間如此便需要優(yōu)化策略,文章分享優(yōu)化知識(shí)點(diǎn)總結(jié),需要的朋友可以參考一下
    2022-06-06

最新評(píng)論

孙吴县| 文化| 潮安县| 武穴市| 密云县| 梁河县| 通州市| 阿拉善右旗| 涞水县| 琼中| 策勒县| 罗山县| 衡阳县| 娄底市| 仁寿县| 淳化县| 凤城市| 密云县| 鲁山县| 泰宁县| 司法| 胶州市| 呼玛县| 台中市| 垫江县| 奇台县| 怀宁县| 郑州市| 惠安县| 郯城县| 平顶山市| 遵化市| 临桂县| 平阳县| 庆云县| 绥江县| 连州市| 太保市| 上思县| 怀宁县| 武邑县|