Обзор Старых Проектов Для Android 4.0. Часть Вторая

Совсем недавно я опубликовал тема , в котором говорилось о коде, который работал в Android 2.3, но перестал работать в Android 4.0. Несколько человек написали лично по электронной почте, поблагодарили за информацию и попросили продолжить подобные публикации.

На этот раз поговорим об ActionBar. У одного пользователя возникла проблема с кодом, который работал на Android 3.0, но снова перестал работать на Android 4.0.



Небольшое отступление - Ты злой, я тебя оставлю

Около 15 лет назад, когда я начал изучать программирование самостоятельно и при этом подключенный к Интернету, я заметил удивительную вещь.

Когда я, еще новичок, задал вопрос на русскоязычном форуме, то в ответ получил либо молчание, либо совет изучить оборудование и не мешать.

Когда я задал аналогичный вопрос на буржуазных форумах, да ещё на плохом английском (немецкий я учил в школе), то получил развернутые ответы.

С тех пор практически ничего не изменилось.

Я давно пренебрегал нашими форумами и предпочитаю общаться только «там».

Наверняка многие заметили, насколько разительно отличаются комментарии в блогах.

У них есть: хороший урок, спасибо за пост, отличная статья.

У нас: зачем еще велосипед, горизонт захламлен, краски в глазах поблекли, ветровка и т.д. Я лично знаю нескольких «бывших», которые писали блоги на двух языках — английском и русском, а потом оставили только англоязычную часть.

Понятно, почему? То же самое было и с моим предыдущим постом.

Вот типичные высказывания: стреляйте, суровые челябинские программисты и т. д. Как-то так совпало, что подобные вопросы несколько раз всплывали на зарубежных ресурсах, но никто не предлагал стрелять за неправильный код, а просто объяснял, почему этого делать нельзя.

Одним из примеров является http://stackoverflow.com/questions/9442527/networkonmainthreadexception-when-reading-from-web .

В общем только на этом ресурсе по запросу Сетьонмайнсреадсекцептион Было возвращено 90 результатов.

И никто не ругается.

Как говорится, почувствуйте разницу.

Это наш менталитет.

Новая проблема - не работает иконка в ActionBar

Один из зарегистрированных пользователей поделился этой проблемой мой сайт .

Суть была в следующем: Значок приложения может работать как элемент навигации и играть роль кнопки «Домой», как и логотип Хабра на сайте в частности.

Это очень удобно в некоторых случаях, когда приложение состоит из нескольких экранов и можно «ткнуть» на системную иконку приложения, чтобы быстро вернуться.

Пример описан в документации и отлично работал на планшете под управлением Android 3.0, но внезапно перестал работать под Android 4.0. В принципе, ответ был быстро найден в Интернете, более того, даже в документации можно найти решение.

Но, судя по всему, человек просто устал или у него замылились глаза, а обратившийся человек его не нашел.

И шкатулка открылась просто.

Чтобы иконка приложения работала как элемент навигации, необходимо явно указать метод setHomeButtonEnabled()

   

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.two); ActionBar bar = getActionBar(); bar.setHomeButtonEnabled(true); }

Оказалось, что в Android 3.0 значок был включен в качестве кнопки навигации по умолчанию, а в Android 4.0 — нет. Кстати, обнаружил интересный момент, связанный с этой кнопкой.

Система позволяет добавить дополнительную стрелку слева от значка приложения методом bar.setDisplayHomeAsUpEnabled(истина);

Обзор старых проектов для Android 4.0. Часть вторая

Итак, если вы вызываете этот метод, то не обязательно вызывать предыдущий метод setHomeButtonEnabled(), все работает именно так.

Приятного программирования! Теги: #ActionBar #Android #Разработка Android

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.