Связь между представлением в xml-файле и расширенным классом View
-
21-09-2019 - |
Вопрос
Есть ли способ связать унаследованный класс с XML-файлом.
Я пытаюсь подключить расширенный класс к виджету в xml-файле.
Возможно ли это ?
Заранее благодарю.
Решение
Вы, должно быть, заметили, что все узлы которые мы указываем в XML-файлах макета, на самом деле являются либо классами просмотра (например:TextView, EditView) или просмотр контейнеров / менеджеров компоновки (например:Линейное описание, относительное описание и т.д.).Android позволяет создавать пользовательские представления и контейнеры, расширяя класс View и один из менеджеров компоновки соответственно.Затем вы можете увеличить такие представления непосредственно из кода или указать их следующим образом узлы в вашем макете XMLs.
Например, предполагая, что вы создаете класс представления, такой как:
public class com.views.MyView extends View{}
затем вы можете включить этот класс непосредственно в свой макет XML, сказав:
<LinearLayout ..>
<com.views.MyView .. />
</LinearLayout>
Обратите внимание, что при указании класса View непосредственно в XML необходимо учитывать несколько важных тонкостей, таких как:При раздувании пользовательского представления фреймворк вызовет другой конструктор представления.Аргументами будут контекстный объект и AttributeSet (содержащий атрибуты, которые вы задаете в XML).
Для получения более подробной информации обратитесь это