Режимы навигации панели действий являются устаревшими в Android L

? matiash @ | Original: StackOverFlow
---

Взглянув на докладе API различий для " L " Предварительный просмотр Android, я вижу, что все методы, связанные с режимами навигации в классе ActionBar (например, setNavigationMode(), addTab(), selectTab(), и усилителя ; в), В настоящее время устарела .

Документация объясняет:

Режимы навигации панели действий являются устаревшими и не поддерживаются встроенного   Панель инструментов бары действий. Рассмотрите возможность использования других моделей общего навигации   вместо этого.

Что такоепредполагается замена ?

Кроме того, это " встроенные бары панель действий "новая концепция ? Я не думаю, что я слышал о нем раньше.

---

Top 5 ответ

1ianhanniballake @

Http://developer.android.com/reference/android/support/v4/view/PagerTabStrip.html является частью библиотеки поддержки (и был в течение некоторого времени ) и служит в качестве прямой замены . Если вы предпочитаете более новые вкладки стиль игры Google, вы можете использоватьhttps://github.com/astuetz/PagerSlidingTabStrip или изменить любой из Google привел примеры http://developer.android.com/samples/SlidingTabsBasic/index.html или http://developer.android.com/samples/SlidingTabsColors/index.html, как описано в этом https://www.youtube.com/watch?v=tRg_eDfQ8fk .

2Kuno @

Похоже, они добавили новый класс с именем android.widget.Toolbar, которая проходит ViewGroup . Также они добавили новый метод setActionBar(Toolbar) в Activity . Я не проверял еще, но, похоже, вы можете обернуть все виды TabWidgets, Spinners или пользовательские представления вToolbar и использовать его в качестве ActionBar .

3matiash @

Теперь, когда Android 5.0 документы имеются, мы имеем https://developer.android.com/reference/android/widget/Toolbar.html :

Стандартная панель инструментов для использования в пределах содержимого приложения.

Панель инструментовобобщение баров действий для использования в   Аппликации . В то время какпанель действий традиционно часть   Непрозрачный декор активности окна контролировали с помощью рамок,панели инструментов   могут быть размещены в любом произвольном уровне вложенности в целях   Иерархия .

Toolbar Виджет также может быть использован для замены панель действий :

Приложение может выбрать вариант с назначением панель инструментов, на панели действий для   Деятельность по методу setActionBar() .

Осуждение вкладок в панели действий, скорее всего, из-за этого, так как панель инструментов не может содержать Вкладка себя .

Кроме того, он доступен для предыдущих Android verions через AppCompat библиотеки. См https://chris.banes.me/2014/10/17/appcompat-v21/ для получения дополнительной информации. Выдержка:

Android 5.0 представляет новую панель инструментов виджет. Этообобщение   картины ActionBar, но дает вам гораздо больше контроля и   гибкость в ее использовании. Панель инструментоввид в иерархии так же, как   и любой другой, что делает его легче чередовать с остальными вашими взглядами ,   анимации, реагировать на события прокрутки .

4NeoKree @

Новый Toolbar не могут быть использованы для накачивания несколько линейных объектов, так что это невозможно, чтобы добавить вкладки с ним. Если вы хотите использоватьToolbar какTabWidget вы можете вставить некоторые объекты Tab к нему, но только со старым стилем Холо .

https://github.com/neokree/MaterialTabs естьобычай Библиотека, которая использует v7 Toolbar как TabWidget с новыми анимациями Материал дизайн, но она использует те же методы изстарых ActionBar Tabs, так что вы можете прикрепить ваш ViewPager к нему.

5applesauced @

Для "Замена" устаревшего ActionBar, я изменил тип моих переменных ActionBar типа в PagerTabStrip, согласно (старый код в комментарий ) :

// ActionBar bigActionBar;
PagerTabStrip bigActionBar;

"Замена" для .selectTab ~ ActionBar (в TabIndex ), чтобы использовать метод моего связанного ViewPager в .setCurrentItem (INT), как этот (старый код в комментарий ) :

/*
ActionBar.Tab eventTab = bigActionBar.getTabAt(2);
bigActionBar.selectTab(eventTab);
*/
mViewPager.setCurrentItem(2);

Надеюсь, что это полезно.