Мне нужно временно скрыть объекты Tab, которые я определил для своего ActionBar. Для объектов Tab нет метода setVisibility, поэтому я не знаю, как это сделать.
Android: как скрыть вкладки в панели действий?
Ответы (1)
Я бы попробовал setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD), чтобы вернуться к представлению без вкладок. Однако возможно, что когда вы позже вызовете setNavigationMode(ActionBar.NAVIGATION_MODE_TABS), вам потребуется восстановить вкладки.
ОБНОВЛЕНИЕ. Обратите внимание, что вкладки панели действий устарели в предварительной версии «L» для разработчиков и должны оставаться устаревшими в будущих выпусках Android. Рассмотрите возможность использования чего-то другого для вкладок: ViewPager с индикатором вкладок, FragmentTabHost и т. д.
person
CommonsWare
schedule
22.09.2011
Работает как шарм. Спасибо! Вкладки возвращаются точно так же, как я их оставил, когда они снова появляются, поэтому нет необходимости добавлять их обратно на панель действий.
- person Christopher Perry; 23.09.2011
Я только что заметил нежелательный побочный эффект. Когда вкладки снова появляются, та, которая была выбрана ранее, запускает обратный вызов onTabSelected. Я хотел бы просто скрыть/показать вкладки без запуска каких-либо событий.
- person Christopher Perry; 23.09.2011
@Scienceprodigy: подозреваю, что это невозможно. Даже если вы удалите и заново создадите вкладки, одна из них будет выбрана, и ее событие сработает. Просто научите своего
TabListener игнорировать первое событие после восстановления вкладок.
- person CommonsWare; 23.09.2011
TabListener теперь игнорирует событие, когда я нахожусь в процессе смены режимов навигации. Это не так элегантно, как хотелось бы, но работает.
- person Christopher Perry; 23.09.2011
Я получаю сообщение об ошибке -
The method setNavigationMode(int) is undefined for the type MainActivity
- person Confuse; 19.09.2014
@AntiMatter:
setNavigationMode() — это метод ActionBar.
- person CommonsWare; 19.09.2014
Привет @CommonsWare, можно ли анимировать скрытие и отображение?
- person noooooooob; 03.10.2014
@noooooooob: Не то, чтобы я знал об этом. Кроме того, посмотрите обновление, которое я только что добавил в ответ.
- person CommonsWare; 03.10.2014