My Fragment doesn't call onAttach(context)
method when it launched from AppCompatActivity
.
Fragment creating in XML:
<fragment
android:id="@+id/toolbar"
class="package.MainToolbarFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:layout="@layout/fragment_main_toolbar" />
But if I extends it from support.v4.Fragment
, onAttach(context)
call !
What could be the problem?
Of course, I can extend all fragments from v4.Fragment
, but I don't want it. Is it bad practice?
Also project min sdk 14.
It's not called because this method has been added in API 23. If you run your application on a device with API 23 (marshmallow) then onAttach(Context)
will be called. On all previous Android Versions onAttach(Activity)
will be called.
http://developer.android.com/reference/android/app/Fragment.html#onAttach(android.app.Activity)
Support libraries fragment is platform independent. Hence it works on all API versions.