2014-10-09 2 views
1

Привет всем, разработчик Android, у меня есть приложение LayoutInflater для клиента My Android ActionBar.Почему разница LayoutInflater вызывает разницу Иконка SearchView

, но я обнаружил, что разница LayoutInflater заставит генерировать разность SearchView Icon

Это моя разница LayoutInflater и захват изображения

LayoutInflater mInflater1 =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
//You can change mInflater1 =LayoutInflater.from(this); is a same result 

LayoutInflater mInflater2 =LayoutInflater.from(getApplicationContext()); 

This is mInflater1 Result

This is mInflater2 Result

мой вопрос, почему разница Внешний вид LayoutInflater отличается значком SearchView?

+0

Является ли он в той же версии ОС? – Panther

+0

Да, такая же ОС, моя Android-версия - 4.3.1 –

ответ

1

Хорошо, что контекст определяет, где (тема) создаются значки. Я думаю, ОСА и приложение имеет различные темы Подробнее здесь http://developer.android.com/reference/android/view/LayoutInflater.html

The Context in which this LayoutInflater will create its Views; most importantly, this supplies the theme from which the default values for their attributes are retrieved.

+0

Спасибо, я думаю, что это различие тем иконок, полезно для меня :) –

3

Проблема заключается в том, что во втором примере (который я считаю, коррелирует с первой картиной), вы используете контекст приложений для раздувать представления вместо контекста активности.

Рамка выполняет большую работу, чтобы убедиться, что Контекст активности правильно настроен с правильной плотностью экрана, темой и другой подобной информацией. Ожидается, что приложение никогда не должно беспокоиться о отображении контента, поэтому оно не настроено на это.

Не используйте контекст приложения для раздувания видов или получения ресурсов. Используйте контекст активности.

Смежные вопросы