Должны ли мы привязывать android просмотров к Kotlin? - PullRequest
3 голосов
/ 05 августа 2020

Программирование Java, нам нужно использовать функцию findViewById для доступа к элементу просмотра, в настоящее время в Kotlin мы просто используем идентификатор для доступа к элементу просмотра, например, если у нас есть textView с идентификатором «myTxt», мы просто используем myTxt.text = "Some Text"

С другой стороны, использование функции findViewById в Java приведет к снижению эффективности, поэтому мы предлагаем использовать привязку представление для улучшения производительности

теперь вопрос:

Теперь, когда мы не используем findViewById в kotlin, должны ли мы использовать привязку, иначе это не повлияет на производительность?

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Существует три распространенных способа получения ссылок на представления:

  • findViewById
  • syntheti c просмотр свойств (только Kotlin)
  • просмотр привязка

Я думаю, вы смешиваете привязку просмотра vs. syntheti c свойства просмотра .

Когда вы говорите в Kotlin мы просто «используем id», что называется syntheti c view properties . Эта функция была создана для удобства по сравнению с findViewById, а не для производительности.

Google в какой-то момент удалил ссылки на свойства Syntheti c view в своей документации, потому что это только Kotlin. Также не замечательно, что они не являются нулевыми или типобезопасными. В коде Kotlin обычно ожидается нулевая безопасность. И все свойства Syntheti c для всех ваших представлений доступны из любого места, независимо от того, находятся ли они в текущем макете.

Позже они добавили привязку вида как функцию Jetpack. Это тоже не для производительности, а для удобства. Предпочтительно findViewById, потому что он безопасен для null, безопасен по типу и дает вам свойства для точных представлений, которые вы увеличили, не более или менее. Привязка просмотра не ограничивается Kotlin. Можно использовать в Java.

0 голосов
/ 05 августа 2020

Привязка просмотра в Kotlin по умолчанию включена в модуле gradle. Чтобы вручную включить привязку представления в модуле, установите для параметра сборки viewBinding значение true в файле build.gradle на уровне модуля, как показано в следующем примере:

android {

 buildFeatures {
     viewBinding true
  }
}

Итак, если вы используете Kotlin вы должны использовать привязку представления вместо findViewById. Это намного проще, и количество строк кода уменьшено. Также это не повлияет на производительность.

...