Я выбираю другой подход:
Создать:
public interface HideBehaviourListener {
onHide();
onRestore();
}
public interface ToolbarHideListener extends HideBehaviourListener {
}
public interface TabLayoutHideListener extends HideBehaviourListener {
}
Теперь в ваш Фрагмент добавим:
public class SomeFragment {
private ToolbarHideListener toolbarListener;
private TabLayoutHideListener tabLayoutListener;
@Override
public void onAttach(final Context context) {
super.onAttach(context);
toolbarListener = (ToolbarHideListener) context;
tabLayoutListener = (TabLayoutHideListener) context;
}
public void onResume() {
toolbarListener.onHide();
tabLayoutListener.onHide();
}
public void onPause() {
toolbarListener.onRestore();
tabLayoutListener.onRestore();
}
}
Итак. В вашей Деятельности необходимо реализовать интерфейс с вашей логикой c. При таком подходе ваши фрагменты не знают никаких ресурсов или поведения деятельности.