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

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

NavigationComponent 中的 IllegalStateException

NavigationComponent 中的 IllegalStateException

DIEA 2023-08-16 16:18:18
我在我的應(yīng)用程序中使用 Jetpack 的導(dǎo)航組件。我有 2 個(gè)片段,例如 FirstFragment 和 SecondFragment,并且我在導(dǎo)航圖中從第一個(gè)片段到第二個(gè)片段進(jìn)行導(dǎo)航。這樣一切正常。我想將子片段添加到 FirstFragment。所以在 FirstFragment 類的 onCreateView 方法中我添加了這一行g(shù)etChildFragmentManager().beginTransaction().add(R.id.fragment_container, new SimpleFragment()).commit();這樣我在 FirstFragment 中有一個(gè)內(nèi)部片段。從 FirstFragment 導(dǎo)航到 SecondFragment 仍然可以正常工作,但是當(dāng)我按 SecondFragment 中的后退按鈕時(shí),出現(xiàn)此錯(cuò)誤E/AndroidRuntime: FATAL EXCEPTION: main    Process: com.abc.def, PID: 28856    java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.        at android.view.ViewGroup.addViewInner(ViewGroup.java:4937)        at android.view.ViewGroup.addView(ViewGroup.java:4768)        at android.view.ViewGroup.addView(ViewGroup.java:4708)        at android.view.ViewGroup.addView(ViewGroup.java:4681)        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1353)        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1642)        at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1736)        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1800)        at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3096)        at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3050)        at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2688)如果我按后退按鈕或撥打navController.navigateUp()或 ,我會(huì)收到此錯(cuò)誤navController.popBackStack()。如果我刪除該行g(shù)etChildFragmentManager().beginTransaction().add(R.id.fragment_container, new SimpleFragment()).commit();從 FirstFragment 我沒(méi)有錯(cuò)誤,所以這意味著子片段管理器有問(wèn)題,對(duì)吧?這里有什么問(wèn)題嗎?
查看完整描述

2 回答

?
瀟湘沐

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

問(wèn)題出在 SimpleFragment 中。我一直引用該片段的根視圖(有View mRootView字段),并且不會(huì)重新創(chuàng)建它,以防它不為空。



查看完整回答
反對(duì) 回復(fù) 2023-08-16
?
嗶嗶one

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

如果我正確理解這一點(diǎn),而不知道您擁有什么,而不查看“ fragment_container”的布局,那么我會(huì)告訴我,如果您不向其提供更多信息,則其類型ViewGroup此時(shí)只能有一個(gè)子級(jí)。


這意味著fragment_container已經(jīng)有一個(gè)孩子,您需要在添加SimpleFragment.


假設(shè)您有第一個(gè)片段布局,如下所示


<someView>


? <fragment_container/>? // hear you are loading your first fragment and trying load the SimpleFragment as well which is causing problem.


</someView>

你需要的是


<someView>


? <fragment_container/>? only load First Fragment "first_fragment_layout.xml"


</someView>

在第一個(gè)片段的布局中


第一個(gè)_fragment_layout.xml


<someView>


? <viewBlasBla/>


? <viewBlasBla/>


? <fragment_container/>? load SimpleFragment here


</someView>

正如您所看到的,您確實(shí)正在嘗試執(zhí)行嵌套片段,這不是一個(gè)好的實(shí)踐。如果可能的話盡量避免這種情況:)。


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

添加回答

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