Fragment加載報錯 java.lang.IllegalArgumentException: No view found for id ...


07-16 11:26:49.131  9982  9982 E AndroidRuntime: FATAL EXCEPTION: main
07-16 11:26:49.131  9982  9982 E AndroidRuntime: Process: com.android.gallery3d, PID: 9982
07-16 11:26:49.131  9982  9982 E AndroidRuntime: java.lang.IllegalArgumentException: No view found for id 0x7f0d0070 (com.android.gallery3d:id/state_panel_container) for fragment StatePanel{894ba12 #28 id=0x7f0d0070 StatePanel}
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1411)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1741)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1810)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2581)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2368)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2323)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2230)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:700)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:790)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:99)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.os.Looper.loop(Looper.java:164)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:6494)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
07-16 11:26:49.131  9982  9982 E AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

首先根據ID號找到相應的Fragment container(R.id.state_panel_container), 發現是在加載的時候沒有找到相應的container, 即該頁面沒有那個ID號,也就是沒有那個VIEW,

究其原因是getFragmentManager()和 getChildFragmentManager()兩種加載方式不同,getFragmentManager()是獲取Fragment綁定activity的 FragmentManager,獲取到的布局也是activity的布局,

而getChildFragmentManager()獲取的是 Fragment自身的FragmentManager,獲取到的布局是Fragment自己的布局。

由於代碼中發現有一段錯誤的采用了getFragmentManager()方式,獲取的布局自然是Fragment綁定的activity的布局,經審查,該布局中確實沒有發現這個VIEW (state_panel_container),導致了這個異常的發生。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM