Dando uma olhada no relatório diff API para o Android preview "L", vejo que todos os métodos relacionados com modos de navegação na ActionBar
classe (como setNavigationMode()
, addTab()
, selectTab()
, & c). agora estão obsoletos.
A documentação explica:
Os modos de navegação da barra de ação foram descontinuados e não são suportados pelas barras de ação da barra de ferramentas em linha. Considere usar outros padrões de navegação comuns.
Qual é a suposta substituição?
Além disso, as "barras de ação em linha da barra de ferramentas" são um novo conceito? Acho que nunca ouvi falar disso antes.
Respostas:
A nova Biblioteca de suporte ao design do Android adiciona o TabLayout , fornecendo uma implementação de guia que corresponde às diretrizes de design do material para as guias . Uma explicação completa de como implementar guias e
ViewPager
pode ser encontrada neste vídeoAgora descontinuado: O PagerTabStrip faz parte da biblioteca de suporte (e já faz algum tempo) e serve como um substituto direto. Se você preferir as guias de estilo mais recentes do Google Play, poderá usar a biblioteca PagerSlidingTabStrip ou modificar um dos exemplos fornecidos pelo Google SlidingTabsBasic ou SlidingTabsColors, conforme explicado neste vídeo de Dev Bytes .
fonte
NAVIGATION_MODE_LIST
é muito mais fácil, já que tudo o que fizemos foi adicionar um Spinner e alguns auxiliares de retorno de chamada.NAVIGATION_MODE_LIST
? Mina lista como obsoleto ...Agora que os documentos do Android 5.0 estão disponíveis, temos a documentação oficial do widget Barra de ferramentas :
Um
Toolbar
widget também pode ser usado para substituir a barra de ação:A descontinuação de guias na barra de ação deve-se provavelmente a isso, pois as barras de ferramentas não podem conter as próprias guias.
Além disso, está disponível para versões anteriores do Android na biblioteca appcompat. Veja este post de Chris Banes para mais informações. Um trecho:
fonte
Parece que eles adicionaram uma nova classe chamada
android.widget.Toolbar
que se estendeViewGroup
. Eles também adicionaram um novo métodosetActionBar(Toolbar)
noActivity
. Eu não testei ainda, mas parece que você pode quebrar todos os tipos deTabWidgets
,Spinners
ou vistas personalizadas em umToolbar
e usá-lo como seu ActionBar.fonte
O novo
Toolbar
não pode ser usado para inflar vários objetos de linha; portanto, é impossível adicionar guias a ele.Se você quiser usar o
Toolbar
like a,TabWidget
poderá inserir alguns Objetos de Tabulação, mas apenas com o antigo estilo Holo.Aqui há uma biblioteca personalizada que usa a v7
Toolbar
comoTabWidget
nas novas animações de design de material, mas usa os mesmos métodos da antigaActionBar Tabs
, para que você possa anexáViewPager
-la a ela.fonte
Para 'substituição' do ActionBar obsoleto, alterei o tipo de minhas variáveis do tipo ActionBar para PagerTabStrip, conforme (código antigo no comentário):
Um 'substituto' para o .selectTab (tabindex) do ~ actionBar era usar o método .setCurrentItem (int) do ViewPager associado, como este (código antigo no comentário):
Espero que isso seja útil.
fonte
Eu tive o mesmo problema e esta solução me serviu bastante:
No arquivo xml de layout que contém o viewpager, adicione um PagerTabStrip como mostrado:
Para controlar os títulos das páginas, adicione uma instrução switch ao seu arquivo ViewPager:
fonte
FragmentTabHost também é uma opção.
Este código é do site do desenvolvedor do Android:
fonte
Achei esses tutoriais úteis ao montar uma barra de ação (agora a 'barra de ferramentas' - argh) que suporta guias deslizantes com o Material Design:
https://www.youtube.com/watch?v=Fl0xMuo10yA
http://www.exoguru.com/android/material-design/navigation/android-sliding-tabs-with-material-design.html
Você meio que precisa sintetizar esses recursos para corresponder à sua situação específica. Por exemplo, você pode não querer criar manualmente as guias no mesmo estilo que o tutorial do exoguru.com.
fonte
Bem, para eu lidar com a barra de ferramentas de navegação obsoleta usando o widget da barra de ferramentas v7 appcompat.
fonte
Acho que um substituto adequado para quando você tem três a cinco telas de igual importância é o BottomNavigationActivity, que pode ser usado para alternar fragmentos.
Você notará que existe um assistente para isso no Android Studio, mas tome cuidado, pois o Android Studio tende a produzir código de placa da caldeira excessivamente complexo.
Um tutorial pode ser encontrado aqui: https://android.jlelse.eu/ultimate-guide-to-bottom-navigation-on-android-75e4efb8105f
Outro tutorial de qualidade pode ser encontrado no Android Hive aqui: https://www.androidhive.info/2017/12/android-working-with-bottom-navigation/
fonte