আমি টুকরোগুলি বাস্তবায়নের জন্য অ্যান্ড্রয়েড সামঞ্জস্য লাইব্রেরি ব্যবহার করছি এবং বিন্যাসের নমুনাটি প্রসারিত করেছি যাতে কোনও খণ্ডে একটি বোতাম থাকে যা অন্য টুকরোটি বন্ধ করে দেয়।
বামে নির্বাচন ফলকে আমার কাছে 5 টি নির্বাচনযোগ্য আইটেম রয়েছে - A B C D E
।
প্রতিটি FragmentTransaction:replace
বিবরণ ফলকে একটি খণ্ড (মাধ্যমে ) লোড করে -a b c d e
এখন আমি টুকরোটি প্রসারিত করেছি e
যাতে একটি বোতাম রয়েছে যা e1
বিশদ বিবরণে অন্য একটি খণ্ড লোড করে দেয় contain আমি e
খন্ডের অনক্লিক পদ্ধতিতে এটি করেছি :
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(R.id.details_frag, newFrag);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
আমি যদি নিম্নলিখিত নির্বাচনগুলি করি:
E - e - e1 - D - E
তারপরে খণ্ডটি e
বিশদ ফলকে রয়েছে। এটি ঠিক আছে এবং আমি যা চাই যাইহোক, আমি যদি back
এই মুহুর্তে বোতামটি আঘাত করি তবে এটি কিছুই করে না। আমাকে এটিতে দুবার ক্লিক করতে হবে কারণ e1
এখনও স্ট্যাকের মধ্যে রয়েছে। কাছাকাছি ক্লিক করার পরে আমি অনক্রিটভিউতে একটি নাল পয়েন্টার ব্যতিক্রম পেয়েছি:
এই সমস্যাটি 'সমাধান' করতে আমি যখনই A B C D E
নির্বাচিত হয় তখন নিম্নলিখিতগুলি যুক্ত করেছিলাম :
FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
কেবল ভাবছেন যে এটি সঠিক সমাধান বা আমার কিছু আলাদা করা উচিত কিনা?