Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What can be the difference of using a fragment and frameLayout in android? Can both be used interchangeably?

I have seen an approach where frameLayout is used in case of fragments. The ultimate goal was to have multiple fragments.

like image 343
Nandit Mehra Avatar asked Apr 18 '17 14:04

Nandit Mehra


1 Answers

For showing a single Fragment immediately on the screen, yes, you can use fragment or FrameLayout interchangeably.

Single Fragment, Method 1

Showing the Fragment via the fragment tag would look like this in XML:

<fragment class="com.example.ExampleFragment"
        android:id="@+id/details" android:layout_weight="1"
        android:layout_width="0px" android:layout_height="match_parent" />

Single Fragment, Method 2

Showing the Fragment via FrameLayout would look like this in XML:

<FrameLayout android:id="@+id/details" android:layout_weight="1"
            android:layout_width="0px" android:layout_height="match_parent" />

Followed by Java code like this:

Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.details, newFragment);
transaction.addToBackStack(null);
transaction.commit();

Multiple Fragments

Method 2 then supports changing what fragment you are showing later by running more Java code to change what Fragment is there afterwards:

Fragment secondFragment = new SecondExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.details, secondFragment);
transaction.addToBackStack(null);
transaction.commit();

So FrameLayout gives you the extra ability to do that over using the fragment tag.

like image 141
Lance Nanek Avatar answered Oct 19 '22 23:10

Lance Nanek