Sobes.tech
Junior — Middle+
96

Создание собственного аналога findViewById для View

Компании, где спрашивали:

ЯндексЯндекс
Условие задачи

Необходимо реализовать функцию, которая будет искать вложенный View по его идентификатору, имитируя поведение стандартного метода findViewById. При написании решения можно воспользоваться следующими свойствами и функциями, предоставленными в SDK:

  • View.id: Int
  • ViewGroup.childCount: Int
  • fun ViewGroup.getChildAt(index: Int): View
  • fun ViewGroup.children(): Sequence<View>

Требуется написать универсальную функцию, возвращающую найденный элемент нужного типа или null, если элемент с указанным id не найден.

fun <T: View> findViewById(root: View, id: Int): T?