#android #kotlin
Столкнулся со следующей проблемой, подключил библиотеку, в которой есть некие вьюшки с определенными id'шками. И в main проекте при обращении к этому определенному view не взначай прописал тот же id и для свой view. После этого kotlinx вместо того чтобы обращаться в классе к моей id моего проекта, обратился вплоть до id подключенной библиотеки. Как можно избежать подобных ситуаций? Пока как вариант это переименование id в main или библиотеки, но так как это порой не явно всплывает, то хотелось бы как то по другому обойти. Возможно кто то сталкивался уже с чем-то подобным. UPD: Хочу заметить что импорт не меняется, к примеру: import kotlinx.android.synthetic.main.dialog_immediate_categorization.* Где в самой разметке:Где как видно что: com.mandarine.android.common это в моём случае элемент подключенной библиотеки в которой для класса TitleSwitchView выделена разметка состоящая из TextView и SwitchView в котором так раз таки и указан id switchView. И уже в моём классе он обращается не к switchView типа TitleSwitchView а к id switchView типа SwitchView.
Ответы
Ответ 1
Скройте ресурсы библиотеки. Хороший ответ в офф документации https://developer.android.com/studio/projects/android-library#PrivateResourcesОтвет 2
Уу, вот это вопрос! Затрагивает давно известную тему доступности ресурса по всему коду приложения, и как следстве опасность коллизии имен. Механизм поиска обекта в КотлинИкс подразумевает скоуп всего дерева элементов. Обойти данную проблему можно отказом от КотлинИкс. Главное не прибегать к решению в котором используются более сложные имена для обьектов. Автор вопроса молодец!
Комментариев нет:
Отправить комментарий