Au départ, je voulais contrôler le bouton de retour côté Fragment, mais comme il est nécessaire de remplacer onBackPressed () dans Activity et de le contrôler, j'ai pu implémenter et opérer comme suit.
Le flux approximatif est le suivant
Tout d'abord, ajoutez ce qui suit à l'activité d'origine
@Override
public void onBackPressed() {
Fragment fragment = getSupportFragmentManager().findFragmentByTag("handlingBackPressed");
if (fragment instanceof OnBackKeyPressedListener) {
((OnBackKeyPressedListener) fragment).onBackPressed();
}
super.onBackPressed();
}
Donnez à findFragmentByTag un nom approprié. Ici, "manipuler BackPressed" est utilisé.
Puis créez l'interface OnBackKeyPressedListener.java
public interface OnBackKeyPressedListener {
void onBackPressed();
}
Ensuite, ajoutez la balise "handlingBackPressed" lors de la génération d'un fragment dont vous souhaitez contrôler le bouton de retour.
fragment = new HogeFragment();
manager.beginTransaction().replace(R.id.main_area_layout, fragment, "handlingBackPressed").addToBackStack(null).commit();
Hériter de l'interface créée par HogeFragment et ajouter un processus spécifique dans onBackPressed ()
public class FavoriteItemListFragment implements OnBackKeyPressedListener {
・ ・ ・ ・
@Override
public void onBackPressed() {
//Gère les événements clés et décrit le traitement nécessaire.
//Par exemple, affichez le texte dans la zone de la barre d'outils contrôlée par Activité.
TextView leftToolbarText = mContext.findViewById(R.id.tool_bar_left_text);
leftToolbarText.setVisibility(View.VISIBLE);
}
c'est tout!