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

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

使用單獨(dú)的 FragmentPagerAdapter 時(shí)重新啟動(dòng)特定片段上的活動(dòng)

使用單獨(dú)的 FragmentPagerAdapter 時(shí)重新啟動(dòng)特定片段上的活動(dòng)

侃侃爾雅 2021-08-25 16:19:06
背景我有一個(gè)使用片段的 android 應(yīng)用程序。我正在使用一個(gè)單獨(dú)的 FragmentPagerAdapter(即作為一個(gè)單獨(dú)的類,在 MainActivity 之外)。主活動(dòng).javaprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.MainActivity);    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());    mViewPager = (ViewPager) findViewById(R.id.container);    mViewPager.setAdapter(mSectionsPagerAdapter);    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);    tabLayout.setupWithViewPager(mViewPager);}SectionsPagerAdapter.javapublic SectionsPagerAdapter(FragmentManager fm) {    super(fm);}@Overridepublic Fragment getItem(int position) {    switch (position) {        case 0:            return new frag1();        case 1:            return new frag2();        case 2:            return new frag3();        case 3:            return new frag4();        case 4:            return new frag5();        default:            return null;    }}@Overridepublic int getCount() {    return 5;}}問(wèn)題我需要從片段#2(最終目標(biāo)是更改刷新的,也就是說(shuō),片段#3的視圖上碎片#2的用戶發(fā)起可見只要用戶進(jìn)入碎片#3。我曾嘗試一旦可見,就分離/附加片段 #3 本身,如下所示:@Overridepublic void setUserVisibleHint(boolean isVisibleToUser) {    super.setUserVisibleHint(isVisibleToUser);    if (isVisibleToUser) {        getFragmentManager().beginTransaction().detach(this).attach(this).commit();    }不幸的是,a) 這會(huì)降低性能,因?yàn)樵趯?dǎo)航過(guò)程中會(huì)出現(xiàn)“口吃”;b) 它不能可靠地工作。有些東西(某些按鈕的文本)沒(méi)有刷新,出于某種原因我無(wú)法弄清楚。無(wú)論如何,我發(fā)現(xiàn)強(qiáng)制刷新/重繪唯一 100% 可靠的方法是重新啟動(dòng)活動(dòng)(例如,通過(guò)用戶需要按下前一個(gè)片段 #2 上的保存按鈕上的 onClickListener)。但這會(huì)重新啟動(dòng)片段 #1 上的 Activity我的問(wèn)題考慮到我使用的是單獨(dú)的 FragmentPagerAdapter 的事實(shí),我如何重新啟動(dòng)此特定片段(#3)上的活動(dòng)?我已經(jīng)研究了其他幾個(gè)問(wèn)題/答案,例如:https : //stackoverflow.com/a/36064344但是當(dāng) FragmentPagerAdapter 在一個(gè)單獨(dú)的類上時(shí),我如何實(shí)現(xiàn)這樣的事情(在意圖調(diào)用上添加額外內(nèi)容)?或者,我還能做些什么來(lái)刷新片段視圖?如果您需要額外的信息或代碼,請(qǐng)告訴我,我很樂(lè)意添加說(shuō)明。
查看完整描述

1 回答

?
繁華開滿天機(jī)

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

嗯,不是那么簡(jiǎn)單......

this.recreate();不僅重新啟動(dòng)活動(dòng),而且還記住片段位置。


以防萬(wàn)一其他人需要這個(gè),當(dāng)你從片段工作時(shí),你需要這樣使用它:


首先聲明包含相關(guān)片段的活動(dòng)。例如


public class frag1 extends Fragment {

...

Activity mactivity;


@Override

public void onAttach(Activity MainActivity) {

    super.onAttach(MainActivity);

    mactivity = MainActivity; 

}

然后而不是getActivity().recreate();簡(jiǎn)單地使用mactivity.recreate();


查看完整回答
反對(duì) 回復(fù) 2021-08-25
  • 1 回答
  • 0 關(guān)注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報(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)