欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

Fragment的生命周期

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

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

可能會出現(xiàn)同一個Activity中

對象1: A fragment

對象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 對象 調(diào)用A fragment 中的方法

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

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

1,子類對象需要重寫該方法

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

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

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

由此可見 當(dāng)嵌套方式越復(fù)雜, 這個方法需要處理的 層次關(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); 
} 
//對外提供一個設(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 只需要 實現(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)用問題的解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android評分RationBar控件使用詳解

    Android評分RationBar控件使用詳解

    這篇文章主要為大家詳細(xì)介紹了Android評分RationBar控件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 輕松實現(xiàn)Android仿淘寶地區(qū)選擇功能

    輕松實現(xiàn)Android仿淘寶地區(qū)選擇功能

    這篇文章主要介紹了輕松實現(xiàn)Android仿淘寶地區(qū)選擇功能的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • android中圖片翻頁效果簡單的實現(xiàn)方法

    android中圖片翻頁效果簡單的實現(xiàn)方法

    android中圖片翻頁效果簡單的實現(xiàn)方法,需要的朋友可以參考一下
    2013-05-05
  • 匯總Android視頻錄制中常見問題

    匯總Android視頻錄制中常見問題

    這篇文章主要匯總了Android視頻錄制中常見問題,幫助大家更好地解決Android視頻錄制中常見的問題,需要的朋友可以參考下
    2015-12-12
  • 制作獨立的Android模擬器實現(xiàn)方法

    制作獨立的Android模擬器實現(xiàn)方法

    本文主要介紹如何制作獨立的Android模擬器,這里給大家提供詳細(xì)的制作流程,有需要的小伙伴可以參考下
    2016-08-08
  • Android 調(diào)用發(fā)送短信的方法

    Android 調(diào)用發(fā)送短信的方法

    這篇文章主要介紹了Android 調(diào)用發(fā)送短信的方法的相關(guān)資料,主要實現(xiàn)Android 調(diào)用短信的使用,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • Android編程設(shè)計模式之迭代器模式詳解

    Android編程設(shè)計模式之迭代器模式詳解

    這篇文章主要介紹了Android編程設(shè)計模式之迭代器模式,結(jié)合實例形式詳細(xì)分析了Android迭代器模式的概念、原理、應(yīng)用場景、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2017-12-12
  • Android布局居中的幾種做法

    Android布局居中的幾種做法

    這篇文章主要介紹了Android布局居中的幾種做法的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Android HttpClient GET或者POST請求基本使用方法

    Android HttpClient GET或者POST請求基本使用方法

    在Android開發(fā)中我們經(jīng)常會用到網(wǎng)絡(luò)連接功能與服務(wù)器進(jìn)行數(shù)據(jù)的交互,為此Android的SDK提供了Apache的HttpClient來方便我們使用各種Http服務(wù).這里只介紹如何使用HttpClient發(fā)起GET或者POST請求
    2012-12-12
  • Android利用SurfaceView實現(xiàn)簡單計時器

    Android利用SurfaceView實現(xiàn)簡單計時器

    這篇文章主要為大家詳細(xì)介紹了Android利用SurfaceView實現(xiàn)一個簡單計時器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評論