Как вы определяете зависимости к вашим представлениям (android.view.View
)? Большинство примеров, которые я видел в кинжале, предоставляют им контекст представления, но это не кажется очень сложным. Скажем, если у меня есть двухпанельное представление, я бы хотел, чтобы охватывающий вид обеспечивал зависимости от основных и подробных представлений. Если использовать контекст из вложенных представлений, функции будут по-прежнему предоставляться действием, а не закрывающим представлением. Одним из решений было бы обернуть контекст, переданный в вложенное представление, но это затруднит инфляцию. Это не вопрос кинжала.Просмотреть зависимость впрыска
ответ
Если я правильно понял вас, вы хотите передать некоторую зависимость к своему виду. Насколько я знаю, вы можете вводить зависимости так же, как в Activity. С помощью Dagger 2 вы можете определить компонент, модуль, интерфейс и использовать аннотацию @Inject
. Он должен работать. На самом деле я не использовал инъекции в представлениях. Обычно я использую их в действиях и просто передаю представление (например, String, Integer, List of objects, custom object и т. Д.). Я думаю, что взгляды должны быть как можно более простыми, и я не уверен, что использование инъекций внутри них является правильным. Возможно, это может быть правильным в очень конкретном решении.
Я понимаю, как вводить инъекцию, я спрашиваю, есть ли способ для включения представления для зависимостей для вложенного представления. – DariusL
Я думаю, самый простой способ узнать это попробовать. Я не знаю, можете ли вы передавать инъекции из закрывающего представления во вложенное представление, но вы можете попытаться инициализировать инъекции во вложенном представлении. При желании вы можете инициализировать инъекции в общем объекте, который может использоваться приложением и вложенным представлением. Может быть, было бы неплохо спросить этот вопрос через вопрос о GitHub, поэтому поддерживающие кинжалы могут дать вам лучший ответ. –
Вы можете просто сделать слепой обход дерева просмотра, спросив каждого родителя, если он имеет инжектор, который он должен использовать.
В качестве альтернативы, вы можете иметь закрывающий вид, отвечающий за инъекции, вместо того, чтобы вложенные представления пытались внедрить себя. В конце концов, хотя в примерах руководства для кинжалов показаны объекты, инъецирующие себя, инъекция зависимостей в общем случае должна быть наоборот: что-то еще вводит в нас.
- 1. Зависимость впрыска весной
- 2. WPF Зависимость впрыска
- 3. Зависимость впрыска Угловая 2
- 4. Зависимость впрыска без рамки
- 5. Зависимость впрыска php-сайта
- 6. Зависимость впрыска ActionFilterAttribute альтернатива
- 7. Весна Зависимость безопасности впрыска
- 8. Зависимость впрыска в Laravel
- 9. Зависимость впрыска в петле
- 10. Зависимость впрыска php
- 11. Зависимость впрыска в php?
- 12. Кинжал 2, Зависимость впрыска
- 13. Зависимость впрыска в Guice
- 14. Зависимость впрыска в Django
- 15. Зависимость впрыска для какао?
- 16. Angularjs зависимость параметров впрыска
- 17. Зависимость впрыска с Akka
- 18. Зависимость впрыска весной MVC?
- 19. Зависимость впрыска - именованные зависимости
- 20. Зависимость впрыска - контроллер завод
- 21. Зависимость впрыска перед генерацией
- 22. Недостатки впрыска Зависимость
- 23. Зависимость впрыска в конструкторе
- 24. Web API ASP.NET Зависимость впрыска
- 25. Жадная конструкция и зависимость впрыска
- 26. Зависимость впрыска и названные регистраторы
- 27. Зависимость впрыска в свойствах PHP
- 28. Зависимость впрыска Slim Framework 3
- 29. Зависимость впрыска и инициализация объекта
- 30. Зависимость Проблема впрыска - Угловая 2
Что такое вариант использования, в котором вы хотите что-то ввести в представление, а затем передать эту зависимость для дочернего представления, а не вводить зависимость непосредственно в дочерний режим? – FriendlyMikhail
Вид действует на его родителя в некотором роде. Если обратный вызов передается через Контекст, он будет действовать на активность (кроме ContextWrapper). Передача обратных вызовов с помощью метода не такая забавная (нет окончательной) – DariusL
Хотите вставить DI в пользовательское представление (например, CustomTextView расширяет TextView), куда я должен называть инъекцию? –