Android片段事务监听器 [英] Android fragment transaction listener

查看:71
本文介绍了Android片段事务监听器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

执行片段事务时(例如,当我用另一个片段替换片段时),而无需调用addToBackStack()时,我需要侦听.FragmentManager类提供了addOnBackStackChangedListener回调,但是当我执行片段替换而不调用addToBackStack时,将不执行它.

I need to listen when a fragment transaction is performed, for example, when I replace a fragment with another, without call to addToBackStack(). FragmentManager class provides a addOnBackStackChangedListener callback, but when I perform a fragment replacement without call to addToBackStack, it is not executed.

侦听操作是在只能访问活动实例及其片段管理器的类中执行的.

the listen operation is performed in a class which only have access to the activity instance and its fragment manager.

推荐答案

您可以对所有片段使用Base类.然后,您可以重写onDetach()方法.例如

You can use Base class for all your fragments. Then you can override onDetach() method. For example

public class BaseFragment extends Fragment {

@Override
public void onDetach() {
   // run code that needed by your library. e.g.
    if (getActivity() != null && getActivity() instanceof MainActivity) {
    ((MainActivity)getActivity()).someMethodToDetectOnDetach();
    }
    super.onDetach();
}

然后像这样从BaseFragment扩展片段

And then extends your fragments from BaseFragment like this

public class MyFragment extends BaseFragment {
// .....
}

这篇关于Android片段事务监听器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆