0

I am working with Fragments.

See the image below.enter image description here

can we hold different activity's(Activity A) fragment(Fragmet A1) inside a fragment(Fragment B2) of another activity(Activity B)?

Is it possible how can we do this ?

Karthikeyan Ve
  • 2,550
  • 4
  • 22
  • 40

2 Answers2

4
public void addInnerFrag() {
        getChildFragmentManager().beginTransaction().add(R.id.fragContainer, new InnerFrag()).commit();
        getChildFragmentManager().executePendingTransactions();
}
Hulk
  • 237
  • 1
  • 13
  • 2
    This is the correct answer. Use getChildFragmentManager when adding Fragments inside of a Fragment. – Nick H Mar 26 '15 at 12:29
  • @hitch.united I am getting the error "Type mismatch: cannot convert from MusicAlbumFragment to Fragment". public class MusicAlbumFragment extends Fragment . The extending Fragment is (android.app.Fragment). – Karthikeyan Ve Mar 26 '15 at 13:17
  • Use fragment of one type only ..either android.app.Fragment or appsupport fragment – Hulk Mar 26 '15 at 13:22
  • @hitch.united FYI... I have changed to android.support.v4.app.Fragment. Now I am getting ClassCastException. java.lang.ClassCastException: packageName1.MyHomeActivity cannot be cast to packageName2.MusicHome – Karthikeyan Ve Mar 26 '15 at 13:44
  • FYI... I have changed to android.support.v4.app.Fragment. Now I am getting ClassCastException. java.lang.ClassCastException: packageName1.MyHomeActivity cannot be cast to packageName2.MusicHomeActivity at the line of private MusicHome musicHomeListener; @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); musicHomeListener = (MusicHome)activity; } – Karthikeyan Ve Mar 26 '15 at 14:03
0

yes it is possible we can place fragment inside another fragment.

the solution is while you adding the fragment you will use getFragmentManager(). while adding the child fragment inside the fragment you have to use getChildFragmentManager();

the following link may useful to you: here

Rathan Kumar
  • 2,567
  • 2
  • 17
  • 24