我正在尝试为我的 navController 提供匕首柄。但是我使用的方法不起作用。我想提供 navController 以便通过构造函数注入将其注入我的片段中。
没有 Di.Module,FragmentClass
private val navController by lazy { findNavController() }
private val appBarConf by lazy { AppBarConfiguration(navController.graph) }
当前方法,Di.Module
@Module
@InstallIn(ApplicationComponent::class)
object AndroidModule {
@Provides
fun provideNavController(@ApplicationContext context: Context): NavController = lazy {
(context as AppCompatActivity).findNavController(R.navigation.nav_main)
}.value
@Provides
fun provideAppbarConfiguration(navController: NavController): AppBarConfiguration = lazy {
AppBarConfiguration(navController.graph)
}.value
}
我还创建了 FragmentFactory 类,以便通过构造函数注入我的依赖项。我知道这(context as AppCompatActivity)
是这里的问题,但我不知道正确的解决方案..
我感谢每一个帮助,谢谢!
错误
原因:java.lang.ClassCastException: com.example.app.App 无法转换为 androidx.appcompat.app.AppCompatActivity