我沒有使用ViewPager
,而且我正在調用任何Fragment
事務的唯一地方是點擊活動佈局中導航欄上的按鈕。切換片段太快會導致:java.lang.IllegalStateException:No activity
當我太迅速切換到片段(如來回),我得到這個異常:
java.lang.IllegalStateException:沒有活動
這似乎是,當我點擊切換另一個Fragment
,而第一個尚未完全加載完成。我正在使用FragmentActivity
。
任何人都可以對此有所瞭解嗎?
我的代碼切換Fragment
S:
fragmentManager.beginTransaction()
.replace(R.id.container, old,
fragment.getClass().getSimpleName())
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).commit();
編輯: 取出過渡解決了這個問題,但我不知道是否有一種方法,在地方過渡要做到這一點。我的理論是,轉換會延遲片段生命週期,並在另一個片段事務啓動時導致activity爲null。
你看過https://stackoverflow.com/a/17131382/603270 https://stackoverflow.com/a/15656428/603270? – shkschneider
@shkschneider我已經看過這些。顯然,這是一個新的支持庫的錯誤,但我沒有在這裏使用小孩片段管理器。這只是一個基本的應用程序,可通過活動中的按鈕訪問4個屏幕。 – sihrc
我認爲你的問題與獲取onAttach上下文有關,你是否試圖在以後獲取上下文?例如onActivityCreated – Rarw