Взглянув отчет дифф с API для просмотра Android «L», я вижу , что все методы , связанные с режимами навигации в ActionBar
классе (например setNavigationMode()
, addTab()
, selectTab()
, и с). сейчас устарели.
Документация объясняет:
Режимы навигации панели действий устарели и не поддерживаются встроенными панелями действий панели инструментов. Попробуйте использовать другие распространенные шаблоны навигации.
Что такое предполагаемая замена?
Кроме того, является ли «встроенная панель действий панели инструментов» новой концепцией? Я не думаю, что слышал об этом раньше.
Ответы:
Новая библиотека поддержки дизайна Android добавляет TabLayout , предоставляя реализацию вкладок, соответствующую рекомендациям по дизайну материалов для вкладок . Полное пошаговое руководство о том, как реализовать вкладки и
ViewPager
можно найти в этом видеоТеперь осуждается: PagerTabStrip является частью библиотеки поддержки (и в течение некоторого времени) и служит в качестве прямой замены. Если вы предпочитаете более новые вкладки в стиле Google Play, вы можете использовать библиотеку PagerSlidingTabStrip или изменить любой из предоставленных Google примеров SlidingTabsBasic или SlidingTabsColors, как описано в этом видео Dev Bytes .
источник
NAVIGATION_MODE_LIST
намного проще, учитывая, что все, что он сделал, это добавил Spinner и несколько помощников обратного вызова.NAVIGATION_MODE_LIST
? Шахта перечисляет это как устаревшее ...Теперь, когда документы для Android 5.0 доступны, у нас есть официальная документация для виджета Панели инструментов :
Toolbar
Виджет также может быть использован для замены панели действий:Скорее всего, это связано с устареванием вкладок на панели действий, поскольку панели инструментов не могут содержать вкладки.
Кроме того, он доступен для предыдущих версий Android через библиотеку appcompat. Смотрите этот пост Крис Бейнс для получения дополнительной информации. Выдержка:
источник
Кажется, что они добавили новый класс,
android.widget.Toolbar
который расширяетсяViewGroup
. Также они добавили новый методsetActionBar(Toolbar)
вActivity
. Я не проверял, но она выглядит , как вы можете обернуть все видыTabWidgets
,Spinners
или пользовательские представления вToolbar
и использовать его в качестве ActionBar.источник
Новое
Toolbar
нельзя использовать для надувания многострочных объектов, поэтому в него невозможно добавить вкладки.Если вы хотите использовать
Toolbar
как a,TabWidget
вы можете вставить в него несколько объектов Tab, но только со старым стилем Holo.Здесь есть пользовательская библиотека, которая использует v7,
Toolbar
какTabWidget
с новой анимацией Material Design, но она использует те же методы из старойActionBar Tabs
, так что вы можете прикрепить ееViewPager
к ней.источник
Для «замены» устаревшего ActionBar я изменил тип моих переменных типа ActionBar на PagerTabStrip, согласно (старый код в комментарии):
«Замена» для .selectTab (tabindex) для ~ actionBar заключалась в том, чтобы использовать мой связанный метод ViewPager .setCurrentItem (int), например так (старый код в комментарии):
Надеюсь, это полезно.
источник
У меня была та же проблема, и это решение меня вполне устраивало:
В XML-файле макета, который содержит viewpager, добавьте PagerTabStrip, как показано ниже:
Чтобы контролировать заголовки страниц, добавьте оператор switch в файл ViewPager:
источник
FragmentTabHost также является опцией.
Этот код с сайта разработчика Android:
источник
Я нашел эти учебники полезными, когда собирал панель действий (теперь «панель инструментов»), которая поддерживает скользящие вкладки с Material Design:
https://www.youtube.com/watch?v=Fl0xMuo10yA
http://www.exoguru.com/android/material-design/navigation/android-sliding-tabs-with-material-design.html
Вы как бы должны синтезировать эти ресурсы в соответствии с вашей конкретной ситуацией. Например, вы можете не захотеть создавать вкладки в том же стиле, что и учебник exoguru.com.
источник
Хорошо для меня, чтобы справиться с устаревшей панелью инструментов навигации с помощью панели инструментов v7 appcompat виджета.
источник
Я думаю, что подходящей заменой для трех-пяти экранов одинаковой важности является BottomNavigationActivity, который можно использовать для переключения фрагментов.
Вы заметите, что в Android Studio для этого существует мастер, но будьте осторожны, поскольку Android Studio имеет тенденцию создавать слишком сложный код котельной пластины.
Учебное пособие можно найти здесь: https://android.jlelse.eu/ultimate-guide-to-bottom-navigation-on-android-75e4efb8105f
Еще одно руководство по качеству можно найти в Android Hive здесь: https://www.androidhive.info/2017/12/android-working-with-bottom-navigation/
источник