একটি ফ্রাগমেন্ট প্রতিস্থাপনের প্রক্রিয়া সংযোজন প্রক্রিয়ার মতই, কিন্তু add()এর পরিবর্তে replace()মেথড প্রয়োজন হয়।
মনে রাখবেন যে যখন আপনি ফ্রাগমেন্ট ট্রানজেকশন সম্পাদন করবেন, যেমন কোনটার বিয়োজন বা প্রতিস্থাপন, ইউজারকে পরিবর্তনটিকে "undo" করতে নেভিগেট করে পেছনে নিয়ে আসাটা অনুমোদন করতে এটা বরাবরই যথাযথ। ফ্রাগমেন্ট ট্রানজেকশনের মাধ্যমে ইউজারকে পেছন দিকে নেভিগেট করা অনুমোদন করতে, FragmentTransaction করার পূর্বে আপনাকে অবশ্যই addToBackStack()কল করতে হবে।
নোট: যখন আপনি একটি ফ্রাগমেন্ট প্রতিস্থাপন বা বিয়োজন করবেন এবং ব্যাক স্ট্যাকে ট্রানজেকশনটি সংযুক্ত করবেন, ফ্রাগমেন্টটি যা বিয়োজিত হয়েছে তা থেমে (স্টপ) যায় (ধ্বংস হয় না)। যদি ইউজার ফ্রাগমেন্টটা রিস্টোর করতে নেভিগেট করে পেছন দিকে আসে, এটা রিস্টার্ট করে। যদি আপনি ব্যাক স্ট্যাক এ ট্রানজেকশন সংযোজন না করে থাকেন, যখন ফ্রাগমেন্ট প্রতিস্থাপন বা বিয়োজন করা হয় তখন এটা ধ্বংস হয়ে যায়।
একটি ফ্রাগমেন্টের সাথে আরেকটির প্রতিস্থাপনের উদাহরণ:
// Create fragment and give it an argument specifying the article it should show
ArticleFragment newFragment = new ArticleFragment();
Bundle args = new Bundle();
args.putInt(ArticleFragment.ARG_POSITION, position);
newFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack so the user can navigate back
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
addToBackStack() মেথডটি একটি ঐচ্ছিক স্ট্রিং প্যারামিটার নেয় যা ট্রানজেকশনের জন্য একটা ইউনিক নাম সুনির্দিষ্ট করে। নামটির কোন প্রয়োজন নেই যদি না আপনি Fragment.BackStackEntry এপিআই ব্যবহার করে উন্নত ফ্রাগমেন্ট অপারেশন সম্পাদন করার পরিকল্পনা করে থাকেন।