Sobes.tech
Junior — Middle+
172

Создание собственного аналога 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?