Saya menggunakan pustaka Kompatibilitas Android untuk mengimplementasikan fragmen dan telah memperluas sampel tata letak sehingga fragmen berisi tombol yang melepaskan fragmen lain.
Di panel pilihan di sebelah kiri saya memiliki 5 item yang dipilih - A B C D E.
Setiap memuat fragmen (melalui FragmentTransaction:replace) di panel detail -a b c d e
Sekarang saya telah memperluas fragmen eberisi tombol yang memuat fragmen lain e1juga di panel rincian. Saya telah melakukan ini pada emetode onClick fragmen sebagai berikut:
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(R.id.details_frag, newFrag);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
Jika saya membuat pilihan berikut:
E - e - e1 - D - E
Kemudian fragmen eada di panel detail. Ini baik dan apa yang saya inginkan. Namun, jika saya menekan backtombol pada saat ini tidak ada artinya. Saya harus mengklik dua kali karena e1masih di tumpukan. Selanjutnya setelah mengklik sekitar saya mendapat pengecualian pointer nol di onCreateView:
Untuk 'memecahkan' masalah ini saya menambahkan yang berikut setiap kali A B C D Edipilih:
FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
Hanya ingin tahu apakah ini solusi yang tepat atau apakah saya harus melakukan sesuatu yang berbeda?