Подтвердить что ты не робот

Есть ли разница между getLayoutInflater() и .getSystemService(Context.LAYOUT_INFLATER_SERVICE)

Простой ответ "Нет" меня успокоит. Если есть какая-то разница, то что это такое?

4b9b3361

Ответ 1

Нет

Пока объект или окно, вызывающее getLayoutInflater(), имеет тот же Контекст, который вызовет getSystemService(), нет разницы.


Доказательство Вы можете проследить LayoutInflater, возвращенный getLayoutInflater(), в LayoutInflater.from(), и вы можете видеть это просто ярлык для getSystemService() из исходного кода:

public static LayoutInflater from(Context context) {
    LayoutInflater LayoutInflater =
            (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (LayoutInflater == null) {
        throw new AssertionError("LayoutInflater not found.");
    }
    return LayoutInflater;
}

Ответ 2

Вот как вы определяете LayoutInflater.

LayoutInflater inflater = (LayoutInflater)context.getSystemService (Context.LAYOUT_INFLATER_SERVICE);

И getLayoutInflater() просто дает "быстрый доступ к экземпляру LayoutInflater, который извлекается из его контекста" (из документации), возвращая LayoutInflater.

Аналогично, getSystemService(Context.LAYOUT_INFLATER_SERVICE) используется для извлечения LayoutInflater для раздувания ресурсов макета в этом контексте.

Итак, на самом деле существует разница между NO.

Источник: Документация

Ответ 3

Существует по крайней мере одна ситуация, что только

getSystemService (Context.LAYOUT_INFLATER_SERVICE);

необходимо использовать вместо копии

getLayoutInflater

Эта ситуация находится в произвольном объектном классе. Например, у меня есть экземпляр класса call objectA. В объекте A я хочу раздуть представление на родительском представлении (произойдет в ArrayAdapter, который надувает настроенную строку в своем списке). В этом случае context.getLayoutInflater не работает, поскольку нет активности или окна, связанные с контекстом. Только getSystemService (Context.LAYOUT_INFLATER_SERVICE) подходит.

Ответ 4

НЕТ.

Нет никакой разницы.