2

I have a dialog fragment(FragmentA), with a frame layout. I am trying to add another fragment(FragmentB) into the frame layout.

public void setFragment(Fragment fragment) {
    FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
    transaction.replace(R.id.frame_canvas, fragment);
    transaction.commit();
}

Just to confirm, I am logging inside OnCreateView of FragmentB, and it gets printed when call setFragment.

But the view of FragmentA doesn't add FragmentB into the frame layout.

Edit:

FragmentA is actually a DialogFragment. Can that be the issue?

Mukarram Ali
  • 387
  • 5
  • 24
  • Have you tried using `commitNow`, or `commit` followed by `getChildFragmentManager().executePendingTransactions()` ? – Michael Jul 23 '18 at 08:54
  • Tried this, Didn't help. – Mukarram Ali Jul 23 '18 at 09:01
  • Have you tried `FragmentTransaction transaction = getParentFragment().getChildFragmentManager().beginTransaction();` [link](https://stackoverflow.com/questions/25475556/how-to-change-fragment-inside-a-dialogfragment) – Mahavir Jain Jul 23 '18 at 09:09
  • I am calling this from FragmentA, so getParentFragment is invalid. Here FragmentA is parent of FragmentB – Mukarram Ali Jul 23 '18 at 10:50

1 Answers1

1

Use this I think it will works.
If you on Fragment A than use code like below

    Fragment fr = new FragmentB();
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.frame_layout, fr);
    fragmentTransaction.commit();

if you are on activity from where you call fragment B than use Code like below `

  Fragment fr = new FragmentB();
  FragmentManager fm = getSupportFragmentManager();
  FragmentTransaction ft = fm.beginTransaction();
  ft.replace(R.id.frame_layout, fr);
  ft.commit();` 

// xml

 <FrameLayout
    android:id="@+id/frame_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/general_home_toolbar">
Babul
  • 1,076
  • 7
  • 9