У нас есть activity я могу сделать так
LayoutInflater.from(activity)
или так
activity.layoutInflater
в чем разница?
Оба варианта чаще всего будут работать без особой разницы, но есть небольшое различие.
LayoutInflater.from(activity) ждет Context и там происходит:
LayoutInflater LayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
activity.layoutInflater использует
getWindow().getLayoutInflater();
В этом то и разница, дело в том что getWindow обращается уже к закешированному LayoutInflater и работает через Provider. Более того вы получите уже Inflater с параметрами, там есть attr, которые могут быть разные например при разных стилях, темах приложения, если поменялись. Специально такое сделать возможно, но думаю в нормальных кейсах сложно встретить. Получается если есть возможность, то лучше использовать getLayoutInflater() это вызов будет быстрей (Ооооочень незначительно) и получит актуальный Inflater, в другом случае вы получите LayoutInalfater от текущего Context.
Дополню принятый ответ.
Разницы по сути никакой, единственная имплементация Window
это PhoneWindow
, которая только и делает, что кэширует инфлейтер в переменную, чтобы быстрее возвращать.
mLayoutInflater = LayoutInflater.from(context);
Так что при одинаковом контексте(активити) результат будет абсолютно одинаков.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть у меня фрагент, у него есть контроллер и адаптерХочу сделать диалоговое окно тоже через фрашмент, у него не будет не контроллера,ни модели,так...
столкнулся с одной вещьюУ меня идут данные с телефона на компьютер и они отображаются в окне JFrame
Нужно определить находится ли треугольники модели(орел) внутри прямоугольной плоскостиНаписал программу, но отрисовка почему- то работает...