Size: a a a

Android Architecture

2021 June 24

L

Leonid in Android Architecture
Какое именно?
источник

JF

Jorik Fat in Android Architecture
сделать Context.toPx(dp :Float)
источник

L

Leonid in Android Architecture
🤝
источник

L

Leonid in Android Architecture
На контекст можно много чего навесить 😁
источник

АМ

Артём Мельник... in Android Architecture
суть в том, что если делать 23.toDp(context), то всегда надо передавать одно и тоже значение (context) и вот от этого дублирования можно было бы попробовать избавиться (правда, хз как), а вот если делать расширение для контекста, то останется подставить аргумент в эту функцию toDp(23), просто куда ведь лучше сделать 23.toDp(), если бы такое можно было сделать, чем toDp(23), хотя по факту, одно и тоже)
источник

DD

Dmitriy Dyachenko in Android Architecture
А кто мешает?
fun Int.toDp(): Int = (this / Resources.getSystem().displayMetrics.density).toInt()
источник

L

Leonid in Android Architecture
Как правило, dp в px переводят, а не наоборот 🤷‍♂
источник

JF

Jorik Fat in Android Architecture
суть дискуссии в том, что при данном решении эта функция будет видна в домене (не хорошо так)
источник

DD

Dmitriy Dyachenko in Android Architecture
Суть дискуссии я понимаю, отвечал исключительно на "вот можно было бы избавиться от передачи контекста в метод"
источник

АМ

Артём Мельник... in Android Architecture
топчик, именно то. что я и хотел
источник

JF

Jorik Fat in Android Architecture
так это же ничего не меняет
источник

L

Leonid in Android Architecture
+
источник

АМ

Артём Мельник... in Android Architecture
экстеншены ведь преобразуются потом в статические функции, которые в качестве первого аргумента принимают тип, для которого написан экстеншен?
источник

L

Leonid in Android Architecture
Для extensions создаётся что-то типа статического хэша функций под соответствующий тип. Да, им неявно передается this.
источник

АМ

Артём Мельник... in Android Architecture
с экстеншеном для определенного класса у меня получилось разобраться, есть просто общий класс, от которого наследуются наши фрагменты и получилось написать что-то такое
источник

АМ

Артём Мельник... in Android Architecture
и в месте вызовы выглядит это так
источник

JF

Jorik Fat in Android Architecture
это выглядит лаконично, но проблема с ограничением видимости остается. Ее можно вызывать отовсюду

а при переиспользовании потребуется переписывание
источник

U

Unat in Android Architecture
Имхо, корректнее использовать fun Context|View|Resources.dip(sz: Int): Float
источник

АМ

Артём Мельник... in Android Architecture
не совсем так, потому что я определил этот экстеншен в базовом классе нашего фрагмента, от которого должны все наследоваться
источник

JF

Jorik Fat in Android Architecture
а если будет новый фрагмент, который не должен от этого наследоваться?
источник