Sobes.tech
Junior — Middle+

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

livecode

Uzdevuma stāvoklis

Необходимо реализовать функцию, которая будет искать вложенный 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?