Ответ
Да, в Dagger 2 необходимо явно указать, что фрагмент (или другой компонент) собирается использовать внедрение зависимостей. Для этого нужно:
- Добавить аннотацию
@Injectк полям, которые нужно инжектить - Вызвать
AndroidInjection.inject(this)вonCreate()фрагмента
Пример:
class MyFragment : Fragment() {
@Inject lateinit var myDependency: MyDependency
override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState)
}
}
Для работы с фрагментами через Dagger Android нужно:
- Настроить
AndroidInjectorдля фрагмента - Унаследовать
DaggerFragmentили реализоватьHasAndroidInjector