Android fragment 事务监听器

标签 android android-fragments fragmenttransaction

我需要在执行 fragment 事务时进行监听,例如,当我用另一个 fragment 替换 fragment 时,无需调用 addToBackStack()。 FragmentManager 类提供了一个 addOnBackStackChangedListener 回调,但是当我执行 fragment 替换而不调用 addToBackStack 时,它不会被执行。

编辑:监听操作在一个类中执行,该类只能访问 Activity 实例及其 fragment 管理器。

最佳答案

您可以为所有 fragment 使用基类。然后你可以覆盖 onDetach() 方法。例如

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 扩展你的 fragment

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

关于Android fragment 事务监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39975529/

相关文章:

android - Fragments如何影响Activity "single, focused thing that the user can do"原理?

android - 不建议使用带底部导航的 Activity 吗

android - DrawerLayout 的 item click - 什么时候替换 Fragment 合适?

android - 适用于 Android Xamarin 的 SQlCipher

android - 单击外部小部件时保留选择

java - 从另一个 fragment 调用一个 fragment ,然后替换其布局

Android FragmentTransaction 提交已调用

Android:在内部充气 RecyclerView 时,如何防止 Fragment 事务的延迟或动画跳过?

java - 获取广告客户 ID 时出错

android - 在 Windows 上使用 Chrome for Android 中的远程调试功能的分步指南