0
我用setRetainInstance(true)創建了片段,並在第一次啓動後試圖找到我的片段。第二次無法通過標籤找到片段Android
private void showHomeFragment() {
mHomeFragment = (HomeFragment) getSupportFragmentManager().findFragmentByTag(HomeFragment.class.getSimpleName());
if (mHomeFragment == null) {
mHomeFragment = new HomeFragment();
}
showFragment(mHomeFragment, false);
}
@Override
public void showFragment(Fragment fragment, boolean addToBackStack) {
@SuppressLint("CommitTransaction") FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction()
.replace(R.id.main_container,
fragment,
fragment.getClass().getSimpleName());
if (addToBackStack) {
transaction.addToBackStack(fragment.getClass().getSimpleName());
}
transaction.commit();
getSupportFragmentManager().executePendingTransactions();
}
我啓動這個HomeFragment比去HomeFragment的另一個片段,而我無法通過標記找到它。有人能幫我弄清楚是什麼問題嗎?
在此先感謝!
您可以使用'getSupportFragmentManager.popBackStack()'導航回到'HomeFragment',這是按下後退按鈕的程序化等價物。 –
@ krislarson但問題是爲什麼我不能通過標記找到它,如果片段保留實例的真實? –