ActionBarSherlock :Программное отображение/скрытие кнопок Action Item через вызов метода

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

Кнопки в идеале должны выглядеть точно так же, как те, которые создаются при определении элементов меню как элементов действий с помощью android:showAsAction="ifRoom|withText", как показано здесь .

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

Я считаю, что единственный способ, которым я собираюсь добавить такие кнопки и показать / скрыть их по желанию, — это создать для них собственный макет и использовать .setCustomView(), чтобы поместить их на панель действий. Люди в целом согласятся с этим, или я что-то упустил?

Если я пойду по пути использования .setCustomView(), я хотел бы, чтобы мои кнопки выглядели идентично кнопкам элементов действий, которые ActionBarSherlock отображает для пункта меню с атрибутом android:showAsAction="ifRoom|withText". Чтобы сделать это, может ли кто-нибудь посоветовать мне, какую конкретную тему, стиль или макеты из библиотеки ActionBarSherlock мне следует использовать? Я уже пытался использовать R.layout.abs__action_menu_item_layout, но попытка раздуть этот макет создает исключение, связанное с colorStateList, при попытке раздуть CapitalizingButton, который содержит макет.

8
задан Trevor 22 July 2012 в 19:10
поделиться