我的應用程序通常會多次添加並刪除同一個片段。下面是我如何做到這一點:如何頻繁地添加和刪除相同的片段
Add fragment
if (mHomeFragment == null)
{
mHomeFragment = new HomeFragment();
new Handler().postDelayed(new Runnable()
{
@Override
public void run()
{
getSupportFragmentManager().beginTransaction().add(R.id.dummy, mHomeFragment).commit();
}
}, getResources().getInteger(R.integer.transition_duration));
}
else
{
getSupportFragmentManager().beginTransaction().add(R.id.dummy, mHomeFragment).commit();
}
Remove fragment
getSupportFragmentManager().beginTransaction().remove(mHomeFragment).commit();
問題是,有時我的應用程序崩潰時從活動導航包含片段(HomeFragment)到另一個活動。我試圖找出原因,但仍然沒有辦法。我沒有在這裏完全錯誤日誌,因爲該錯誤不經常發生,但錯誤是相同這樣https://android.googlesource.com/platform/frameworks/support/+/5506618c80a292ac275d8b0c1046b446c7f58836%5E!/:
IllegalStateException: Failure saving state......active HomeFragment{419494f0} has cleared index: -1
有誰看到任何問題,我的代碼,或只是知道如何解決這個錯誤,請幫幫我。謝謝大家。
我認爲當你刪除你想要稍後添加的片段時,你需要在事務中包含一個.addToBackStack(「name」),並且在稍後想要添加它時,調用FragmentManager.popBackStack( )撤消刪除 – Yenchi
我會試一試,但因爲這個錯誤不會經常發生,所以我不能告訴你這個錯誤現在是否仍然發生。謝謝。 – Wayne