Кнопки ActionBar, поддерживающие «нажатое» состояние, возможно? - PullRequest
4 голосов
/ 18 января 2012

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

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

Поиски здесь и в других местах приводят меня к пустому состоянию ... Кто-нибудь может порекомендовать возможное решение?Я думал о том, чтобы развернуть свою собственную панель инструментов, и, хотя это может быть моим окончательным решением, использование ActionBar значительно ускорит процесс.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 19 января 2012

Я согласен с Бруно в том, что, вероятно, лучше всего, если вы сделаете это на отдельной панели инструментов для удобства пользователя, и ваш код, вероятно, будет выглядеть лучше, потому что вы не можете полностью настроить панель действий, но если вы решите пойти с ним я могу думать о чем-то действительно простом, например, когда вы нажимаете одну из кнопок меню, вы устанавливаете нажатую кнопку на новую прорисовку (нажатая кнопка), а остальные - на обычную прорисовку (не нажимается), чтобы на каждом значке меню был нажат и не нажата иконка. хотя вам придется invalidateOptionsMenu.

0 голосов
/ 09 декабря 2012

У меня была такая же проблема, и я не нашел решения.Однако я нашел обходной путь, который мне подходит:

В методе onOptionsItemSelected(MenuItem item), если item - это кнопка, которую вы хотите переключить, просто вызовите item.setIcon() и укажите на другой рисующий элемент.Я использую то же изображение, но другим цветом, чтобы показать пользователю, что кнопка находится в «нажатом» состоянии.И когда кнопка будет нажата снова, вернитесь к исходному рисунку.

0 голосов
/ 18 января 2012

Насколько я знаю, прямого способа сделать это не существует, но вы могли бы реализовать свой пользовательский компонент для этого. Однако я советую вам иметь отдельную панель инструментов, которой нет на панели действий, поскольку пользователи ожидают, что все кнопки на панели действий будут «элементами действий», которые выполняют что-то незамедлительное, поэтому переключение элементов на панели действий может нарушить это. ожидание. Это позволяет сэкономить место на панели действий для вещей, которые пользователь ожидает увидеть там, например: навигация, «Отменить», «Сохранить», «Удалить» ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...