第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

片段onResume從后堆棧

片段onResume從后堆棧

搖曳的薔薇 2019-12-17 09:42:49
我正在使用兼容性包在Android 2.2上使用Fragments。使用片段并將片段之間的過渡添加到后臺(tái)時(shí),我想實(shí)現(xiàn)活動(dòng)的onResume相同的行為,即,每當(dāng)片段從彈出窗口中移到“前景”(用戶可見)時(shí),回棧,我想在片段中激活某種回調(diào)(例如,對(duì)共享UI資源執(zhí)行某些更改)。我看到片段框架中沒有內(nèi)置的回調(diào)。為了達(dá)到這個(gè)目的,有什么好的做法嗎?
查看完整描述

3 回答

?
有只小跳蛙

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊

由于缺少更好的解決方案,我為我準(zhǔn)備了這個(gè)工作:假設(shè)我有1個(gè)活動(dòng)(MyActivity),并且相互替換的片段很少(一次只能看到一個(gè))。


在MyActivity中,添加以下偵聽器:


getSupportFragmentManager().addOnBackStackChangedListener(getListener());

(如您所見,我正在使用兼容性包)。


getListener實(shí)現(xiàn):


private OnBackStackChangedListener getListener()

    {

        OnBackStackChangedListener result = new OnBackStackChangedListener()

        {

            public void onBackStackChanged() 

            {                   

                FragmentManager manager = getSupportFragmentManager();


                if (manager != null)

                {

                    MyFragment currFrag = (MyFragment) manager.findFragmentById(R.id.fragmentItem);


                    currFrag.onFragmentResume();

                }                   

            }

        };


        return result;

    }

MyFragment.onFragmentResume()按下“返回”后將被調(diào)用。一些注意事項(xiàng):


假設(shè)您已將所有交易添加到后臺(tái)(使用 FragmentTransaction.addToBackStack())

每次更改堆棧時(shí)都會(huì)激活它(您可以將其他內(nèi)容存儲(chǔ)在后堆棧中,例如動(dòng)畫),因此您可能會(huì)收到同一片段實(shí)例的多個(gè)調(diào)用。


查看完整回答
反對(duì) 回復(fù) 2019-12-17
?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊

我對(duì)建議的解決方案做了一些更改。這樣對(duì)我更好地工作:


private OnBackStackChangedListener getListener() {

    OnBackStackChangedListener result = new OnBackStackChangedListener() {

        public void onBackStackChanged() {

            FragmentManager manager = getSupportFragmentManager();

            if (manager != null) {

                int backStackEntryCount = manager.getBackStackEntryCount();

                if (backStackEntryCount == 0) {

                    finish();

                }

                Fragment fragment = manager.getFragments()

                                           .get(backStackEntryCount - 1);

                fragment.onResume();

            }

        }

    };

    return result;

}


查看完整回答
反對(duì) 回復(fù) 2019-12-17
?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

Android Developers的以下部分介紹了一種通信機(jī)制,該機(jī)制創(chuàng)建活動(dòng)的事件回調(diào)。引用其中的一行:


做到這一點(diǎn)的一種好方法是在片段內(nèi)定義一個(gè)回調(diào)接口,并要求主機(jī)活動(dòng)實(shí)現(xiàn)它。當(dāng)活動(dòng)通過接口收到回調(diào)時(shí),它可以根據(jù)需要與布局中的其他片段共享信息。


編輯: 該片段有一個(gè)onStart(...)當(dāng)用戶可見該片段時(shí)調(diào)用的。同樣,onResume(...)當(dāng)可見且正在運(yùn)行時(shí)。這些與他們的活動(dòng)對(duì)應(yīng)物相關(guān)。簡(jiǎn)而言之:使用onResume()


查看完整回答
反對(duì) 回復(fù) 2019-12-17
  • 3 回答
  • 0 關(guān)注
  • 463 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)