Yêu cầu của tôi là khá đơn giản: Tôi có một nút mà nên thay thế một FragmentA bởi FragmentB.FragmentTransaction.remove không có tác dụng
Điều này nghe có vẻ dễ dàng và gần như hoạt động, vấn đề lớn là đoạn cũ không bị loại bỏ và đoạn mới được đặt ở mặt trước của đoạn cũ và chúng "sống" cùng nhau trong bố cục của tôi.
Bộ luật:
FragmentManager fragMgr = a.getSupportFragmentManager();
Fragment currentFragment = (Fragment) fragMgr.findFragmentById(R.id.fragmentitself);
if(currentFragment!=null){
FragmentTransaction fragTrans = fragMgr.beginTransaction();
fragTrans.remove(currentFragment);
FragmentB newFragment = new FragmentB();
fragTrans.replace(R.id.fragmentcontainer, newFragment);
// I have also tried with R.id.fragmentitself
fragTrans.addToBackStack(null);
fragTrans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragTrans.commit();
}
Các Layout:
<FrameLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:id="@+id/fragmentcontainer">
<fragment
android:id="@+id/fragmentitself"
android:name="com.WazaBe.MyApp.FragmentA"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
làm việc! Cảm ơn. –