J2J.RU - cовременная система продвижения сайтов
Меню сайта

Категории раздела

Наш опрос
Меня больше интересуют приложения и игры для:
Всего ответов: 22

Файлы
Новые Популярные Лучшие


Теги
Android (34)
uCoz (8)
mobile (3)
sistem (3)
xml (3)
google (2)
html (2)
Oboi (2)
opera (2)
Rest (2)
soap (2)
action (1)
ajax (1)
App2SD (1)
apps (1)
CSS (1)
Ddms (1)
editor (1)
gmail (1)
gobook (1)
java (1)
legend (1)
Lite (1)
live (1)
mp3 (1)
mrtm (1)
Muse (1)
ninja (1)
pdf (1)
php (1)
Root (1)
sensor (1)
shazam (1)
sql (1)
thread (1)
touch (1)
UI (1)
Widget (1)
Worms (1)
Xplore (1)
Zirco (1)

RSS
  
Новостная лента.

Форумная лента.

Файловая лента.  

Главная » Статьи » Программинг » Программирование [ Добавить статью ]

Попрощайтесь с кнопкой "Меню"

Автор Scott Main

До появления Honeycomb (Android 3.0) все Android устройства имели кнопку "меню" под экраном. Разработчики могли использовать ее по своему усмотрению, интерфейсы многих приложений были выстроены именно вокруг этой кнопки. В ориентированном на планшеты Honeycomb был сделан шаг в сторону отказа от механических (и сенсорных) кнопок, в связи с этим, в третьей версии Android появился класс ActionBar, который позволял дать пользователю быстрый доступ к настройкам приложения через специальную панель, называемую action bar. По мнению разработчиков Google будущее за Action Bar-ом и программисты должны отказаться от использования кнопки "меню". В настоящее время на рынке доминируют смартфоны с механической или сенсорной кнопкой под экраном, но с появлением Ice Cream Sandwich ситуация может резко измениться.  Вам, как разработчику, важно заранее подготовиться к появлению таких устройств, и использовать концепцию Action bar уже сегодня.

На первый взгляд может показаться, что использование Action Bar-а вызовет проблемы при разработке программ для Android 2.x, в котором эта панель еще не была реализована. Однако здесь нет проблемы. Никто не запрещает Вам продолжать использовать кнопку "меню" на тех устройствах, где она присутствует, добавление же Action Bar-а потребует от вас написания всего нескольких строк кода.


Если бы я попытался сжать эту статью в одно предложение, оно бы звучало так: "Установите targetSdkVersion в 14, и пометьте тегом showAsAction="ifRoom" элементы меню, которые должны быть вынесены на Action Bar".

Окончательный отказ от меню настроек в Android 

Недостаточно просто отказаться от использования кнопки "меню", нужно полностью выкинуть эту концепцию из своей головы. Не создавайте меню, создайте все необходимые кнопки непосредственно внутри деятельностей (activity). Если какие-то действия не помещаются на панель, вынесите их в дополнительное выпадающее меню (action overflow). На приведенной картинке показан action bar с кнопкой для поиска и дополнительное меню с правой стороны панели.

Если Ваше приложение создано под старую версию андроида (в которой традиционно используется меню), то при запуске на Android 3 планшете в нижней части экрана будет отображаться панель, эмулирующая три кнопки, существующие на телефонах второй ветки. 

Терминология довольно запутанная, но выпадающее меню (action overflow) предполагает абсолютно другую концепцию использования, нежели простое меню настроек. Вместо того, чтобы рассматривать меню как вместилище всех настроек приложения, вы создаете панель, на которую помещаете основные настройки. Все второстепенное выносится в выпадающее меню, которое вызывается при нажатии кнопки с тремя точками (Action overflow button) в правой стороны панели.

Action overflow button

Если Вы запускали приложения, написанные для Android 2.3 и ниже на устройствах без кнопок под экраном (например, на планшете с Honeycomb или на Galaxy Nexus), Вы наверно заметили, что рядом с изображением трех кнопок на панели внизу появляется и Action overflow кнопка (три точки друг над другом). Это некий компромисса, однако, не очень удачный. В приложениях, которые вообще не используется меню настроек эта кнопка ничего не делает, раздражая пользователей. Поэтому, весьма неплохим решением было бы следить за версией Android-а, и если Ваша программа запускается под Android 3.0+, убирать эту кнопку с навигационной панели и использовать Action Bar. Такой подход позволяет сохранить совместимость программы со старыми аппаратами и сделать ее более привлекательной для новых.

Если ваша программа запущена на устройствах без кнопок, система решает, нужно ли добавить action overflow на навигационную панель в зависимости от значения поля <uses-sdk> в манифесте. Логика следующая

  • Если Вы установили в minSdkVersion или targetSdkVersion значение больше 11, то система не добавляет эту кнопку.
  • С другой стороны, система создает эту кнопку, когда Вы запускаете приложение на Android 3.0 и выше.
  • Единственное исключение: когда Вы установите minSdkVersion в  10 или ниже; targetSdkVersion в 11, 12 или 13, и не будете использовать ActionBar, система добавит эту кнопку на телефонах (не планшетах) под управлением Android 4.0 и выше. В основе этого исключения лежит следующая идея: если Вы разрабатываете приложение одновременно для телефонов второй ветки и для планшетов третьей, то Вы предполагаете, что у телефонов должна быть кнопка меню, а у планшетов ее нет.


Таким образом, если вы хотите запретить overflow action кнопку в панели навигации, Вам нужно установить targetSdkVersion в 14 (В minSdkVersion  можно записать более низкое значение, чтобы программа могла запускаться на старых устройствах). 

Переход к концепции action bar-а

Если у Вас есть деятельности, которые используют меню настроек (созданное с помощью onCreateOptionsMenu()), то убрав кнопку с навигационной панели (установив targetSdkVersion=14) Вы должны предоставить пользователю альтернативное средство доступа к настройкам. К счастью, от Вас не потребуется много работы, поскольку в системе автоматически создается action bar.

Добавьте showAsAction="ifRoom" в теги <item> элементов, которые вы хотите поместить в action bar. Если вы не уверены, какой из элементов стоит включать в Action Bar, обратитесь к Android Design’s Action Bar guide.

Чтобы сделать восприятие вашей программы более целостным, рекомендуем Вам использовать в качестве иконок для Action bar-а иконки от Android UX Team. Архив прилагается.

Как удалить Action Bar из Android приложения


Если Вам не нужен Action bar, Вы можете удалить его из любой деятельности, либо вообще из приложения. Это может быть актуально для игр и программ, не использующих меню настроек. Вы можете удалить action bar, используя тему Theme.Holo.NoActionBar или Theme.DeviceDefault.NoActionBar.

Если вы хотите использовать эти схемы, но сохранить обратную совместимость, можете использовать систему управления ресурсами, чтобы установить разные темы для разных версий платформ. Более подробно эта тема раскрыта <a>здесь</a>. Вам понадобится создать собственную тему, которая будет наследовать темы различных платформ в зависимости от текущей версии.

Например, Вы можете объявить тему для своего приложения

<application android:theme="@style/NoActionBar">

(или для конкретной деятельности в теге <activity>). 

Для устройств, работающих на Android 2, включите следующую тему в res/values/themes.xml.

<resources>
    <style name="NoActionBar" parent="@android:style/Theme">
        <!-- Наследование стандартной темы Android 2 (без action bar) -->
    </style>
</resources>

Для Honeycomb включите следующую тему в res/values-v11/themes.xml.

<resources>
    <style name="NoActionBar" parent="@android:style/Theme.Holo.NoActionBar">
        <!-- Наследует тему Holo без action bar -->
    </style>
</resources>

При запуске в зависимости от версии API система выберет подходящую тему.

Заключение

Повторим тезисно ключевые идеи и моменты статьи:

  • На новых Android устройствах может отсутствовать кнопка "menu", поэтому при разработке программ лучше вообще отказаться от ее использования.
  • Установите targetSdkVersion = 14 и протестируйте свое приложение на Android 4.0.
  • Добавьте тег showAsAction="ifRoom" в <item> элемент меню, если хотите, чтобы он автоматически попал на панель action bar.
  • Если в Вашем приложении не используется ActionBar, Вы можете убрать его, воспользовавшись темами Theme.Holo.NoActionBar и Theme.DeviceDefault.NoActionBar.


Дополнительную информацию по проектированию Action Bar можно найти в "Android Design’s Action Bar guide". Что касается программирования, посмотрите этот документ: "Action Bar developer guide".


ОригиналScott Main, "Say Goodbye to the Menu Button"
Перевод: Александр Ледков

Категория: Программирование | Добавил: Virus (29.11.2012)

Похожие темы на пост "Попрощайтесь с кнопкой "Меню""

Схожие темы выбранные по тегам : программирование, UI, Android, меню, кнопкой
  
Просмотров: 2023 | Рейтинг: 0.0/0

Дорогие пользователи и гости сайта!!! Пожалуйста, если вам не сложно, оставте комментарий или ваше мнение о портале в Гостевой книге. Ваше мнение очень важно для нас и очень поможет в поиске дальнейшего пути развития сайта. С уважением, Администрация сайта AndroBum!



Так же рекомендуем:
Всего комментариев: 0
Информация:
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

[ Регистрация | Вход ]
Поиск

Мини-чат

Block title
Virus
файлов: 69
Постов: 38
Комментов: 1005
Репутация: 0
Ранг:

droid
файлов: 3
Постов: 0
Комментов: 0
Репутация: 100
Ранг:

Serge
файлов: 1
Постов: 0
Комментов: 0
Репутация: 0
Ранг:

Sergey
файлов: 1
Постов: 0
Комментов: 0
Репутация: 0
Ранг:

Аватар не установлен! Blackfoxxx
файлов: 0
Постов: 0
Комментов: 0
Репутация: 0
Ранг:


Друзья сайта
  • Официальный блог
  • скрипты, шаблоны, html, css
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика Сайта
    Статистика сайта как на сайте

    Пользователей всего: +0
    Материалов всего [?]: +
    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Гости сайта Пользователи

    Яндекс.Метрика




    Пользователи онлайн:


    Flag Counter



    Все материалы размещенные на сайте принадлежат их владельцам.
    Copyright dodomo.do.am © 2010-2012