FragmentHostCallback


public abstract class FragmentHostCallback<H extends Object> extends FragmentContainer


Integration points with the Fragment host.

Fragments may be hosted by any object; such as an Activity. In order to host fragments, implement FragmentHostCallback, overriding the methods applicable to the host.

FragmentManager changes its behavior based on what optional interfaces your FragmentHostCallback implements. This includes the following:

Parameters
<H extends Object>

the type of object that's currently hosting the fragments. An instance of this class must be returned by onGetHost.

Summary

Public constructors

<H extends Object> FragmentHostCallback(
    @NonNull Context context,
    @NonNull Handler handler,
    int windowAnimations
)

Public methods

void
onDump(
    @NonNull String prefix,
    FileDescriptor fd,
    @NonNull PrintWriter writer,
    String[] args
)

Print internal state into the given stream.

View

Return the view with the given resource ID.

abstract @NonNull H

Return the object that's currently hosting the fragment.

@NonNull LayoutInflater

Return a LayoutInflater.

int

Return the window animations.

boolean

Return true if the container holds any view.

boolean

Return true if there are window animations.

void
onRequestPermissionsFromFragment(
    @NonNull Fragment fragment,
    @NonNull String[] permissions,
    int requestCode
)

This method is deprecated. Have your FragmentHostCallback implement {@link ActivityResultRegistryOwner} to allow Fragments to use {@link Fragment#registerForActivityResult(ActivityResultContract, ActivityResultCallback)} with {@link RequestMultiplePermissions}.

boolean

Return true if the fragment's state needs to be saved.

boolean

Checks whether to show permission rationale UI from a fragment.

void
onStartActivityFromFragment(
    @NonNull Fragment fragment,
    @NonNull Intent intent,
    int requestCode
)

Starts a new Activity from the given fragment.

void
onStartActivityFromFragment(
    @NonNull Fragment fragment,
    @NonNull Intent intent,
    int requestCode,
    Bundle options
)

Starts a new Activity from the given fragment.

void
onStartIntentSenderFromFragment(
    @NonNull Fragment fragment,
    @NonNull IntentSender intent,
    int requestCode,
    Intent fillInIntent,
    int flagsMask,
    int flagsValues,
    int extraFlags,
    Bundle options
)

This method is deprecated. Have your FragmentHostCallback implement {@link ActivityResultRegistryOwner} to allow Fragments to use {@link Fragment#registerForActivityResult(ActivityResultContract, ActivityResultCallback)} with {@link StartIntentSenderForResult}.

void

Invalidates the activity's options menu.

Inherited methods

From androidx.fragment.app.FragmentContainer
@NonNull Fragment
instantiate(
    @NonNull Context context,
    @NonNull String className,
    @Nullable Bundle arguments
)

This method is deprecated.

Use setFragmentFactory to control how Fragments are instantiated.

Public constructors

FragmentHostCallback

public <H extends Object> FragmentHostCallback(
    @NonNull Context context,
    @NonNull Handler handler,
    int windowAnimations
)

Public methods

onDump

Added in 1.1.0
public void onDump(
    @NonNull String prefix,
    FileDescriptor fd,
    @NonNull PrintWriter writer,
    String[] args
)

Print internal state into the given stream.

Parameters
@NonNull String prefix

Desired prefix to prepend at each line of output.

FileDescriptor fd

The raw file descriptor that the dump is being sent to.

@NonNull PrintWriter writer

The PrintWriter to which you should dump your state. This will be closed for you after you return.

String[] args

additional arguments to the dump request.

onFindViewById

Added in 1.8.5
public View onFindViewById(int id)

Return the view with the given resource ID. May return null if the view is not a child of this container.

onGetHost

Added in 1.1.0
public abstract @NonNullonGetHost()

Return the object that's currently hosting the fragment. If a Fragment is hosted by a FragmentActivity, the object returned here should be the same object returned from Fragment.getActivity.

onGetLayoutInflater

Added in 1.1.0
public @NonNull LayoutInflater onGetLayoutInflater()

Return a LayoutInflater. See Activity.getLayoutInflater.

onGetWindowAnimations

Added in 1.1.0
public int onGetWindowAnimations()

Return the window animations.

onHasView

Added in 1.8.5
public boolean onHasView()

Return true if the container holds any view.

onHasWindowAnimations

Added in 1.1.0
public boolean onHasWindowAnimations()

Return true if there are window animations.

onRequestPermissionsFromFragment

Added in 1.1.0
Deprecated in 1.3.0
public void onRequestPermissionsFromFragment(
    @NonNull Fragment fragment,
    @NonNull String[] permissions,
    int requestCode
)

Requests permissions from the given fragment. See FragmentActivity.requestPermissions

onShouldSaveFragmentState

Added in 1.1.0
public boolean onShouldSaveFragmentState(@NonNull Fragment fragment)

Return true if the fragment's state needs to be saved.

onShouldShowRequestPermissionRationale

Added in 1.1.0
public boolean onShouldShowRequestPermissionRationale(@NonNull String permission)

Checks whether to show permission rationale UI from a fragment. See FragmentActivity.shouldShowRequestPermissionRationale

onStartActivityFromFragment

Added in 1.1.0
public void onStartActivityFromFragment(
    @NonNull Fragment fragment,
    @NonNull Intent intent,
    int requestCode
)

Starts a new Activity from the given fragment. See FragmentActivity.startActivityForResult.

onStartActivityFromFragment

Added in 1.1.0
public void onStartActivityFromFragment(
    @NonNull Fragment fragment,
    @NonNull Intent intent,
    int requestCode,
    Bundle options
)

Starts a new Activity from the given fragment. See FragmentActivity.startActivityForResult.

onStartIntentSenderFromFragment

Added in 1.1.0
Deprecated in 1.3.0
public void onStartIntentSenderFromFragment(
    @NonNull Fragment fragment,
    @NonNull IntentSender intent,
    int requestCode,
    Intent fillInIntent,
    int flagsMask,
    int flagsValues,
    int extraFlags,
    Bundle options
)

Starts a new IntentSender from the given fragment. See Activity.startIntentSender.

onSupportInvalidateOptionsMenu

Added in 1.1.0
public void onSupportInvalidateOptionsMenu()

Invalidates the activity's options menu. See FragmentActivity.supportInvalidateOptionsMenu