Android 如何向活动通知NavHostFragment子片段附件

Android 如何向活动通知NavHostFragment子片段附件,android,android-fragments,android-architecture-navigation,Android,Android Fragments,Android Architecture Navigation,我有一个活动,包含一个NavHostFragment和一个给定的导航图以及经典的子片段。我的子片段可能触发通过接口声明的事件,因此它们有一个方法setXXXlistenerInterface来注册实现接口的侦听器 这是可能实现接口的活动,因为它知道如何处理事件 为此,我希望在显示子片段时调用Activity.OnAtachFragment方法,以便执行以下操作: public void onAttachFragment(@NonNull Fragment fragment) { supe

我有一个活动,包含一个NavHostFragment和一个给定的导航图以及经典的子片段。我的子片段可能触发通过接口声明的事件,因此它们有一个方法setXXXlistenerInterface来注册实现接口的侦听器

这是可能实现接口的活动,因为它知道如何处理事件

为此,我希望在显示子片段时调用Activity.OnAtachFragment方法,以便执行以下操作:

public void onAttachFragment(@NonNull Fragment fragment)
{
    super.onAttachFragment(fragment);
    if( fragment instanceof OneOfMyFragment)
    {
        ((OneOfMyFragment)fragment).setXXXListener(this);
    }
}
但事实并非如此;NavHostFragment使用NavHostFragment参数调用一次

所以我研究了NavHostFragment,解决方案可能是使用NavHostFragment.getChildFragmentManager,它返回一个FragmentManager,然后我可以执行FragmentManager.addFragmentOnAttachListenerlistener,这样我就可以自己注册了

问题是:FragmentManager.addFragmentOnAttachListener似乎未在源文件中定义!至少AndroidStudio不知道也不会编译

在我的gradle文件中,我目前有这些版本,但也尝试使用API 30:

compileSdkVersion 29
buildToolsVersion "29.0.2"

targetSdkVersion 29

有什么想法吗?为了实现我的目标,或者为了解决未定义的错误

androidx。导航:导航片段:2.3.2仅依赖于片段1.2.4,但addFragmentOnAttachListener API仅在中添加。因此,如果您想使用新的API,您需要特别添加对片段1.3版本1.3.0-rc01的依赖关系:

implementation 'androidx.navigation:navigation-fragment:2.3.2'
implementation 'androidx.navigation:navigation-ui:2.3.2'

// Add this line
implementation 'androidx.fragment:fragment:1.3.0-rc01'
导航:导航片段:2.3.2仅依赖于片段1.2.4,但addFragmentOnAttachListener API仅在中添加。因此,如果您想使用新的API,您需要特别添加对片段1.3版本1.3.0-rc01的依赖关系:

implementation 'androidx.navigation:navigation-fragment:2.3.2'
implementation 'androidx.navigation:navigation-ui:2.3.2'

// Add this line
implementation 'androidx.fragment:fragment:1.3.0-rc01'

添加FragmentManager.addFragmentOnAttachListener已完成添加FragmentManager.addFragmentOnAttachListener已完成,谢谢!谁能比提交人更有用:谢谢!谁能比提交人更有用: