Modos de navegação da barra de ação são reprovados no Android L

? matiash @ | Original: StackOverFlow
---

Dando uma olhada no relatório diff API para o Android "L " preview, eu vejo que todos os métodos relacionados com os modos de navegação no ActionBar class (como setNavigationMode(), addTab(), selectTab(), & amp ; c) . estão agora obsoleto.

A documentação explica:

Modos de navegação da barra de ação estão obsoletos e não apoiada por linha   barras de ação da barra de ferramentas . Considere o uso de outros padrões de navegação comum   em vez disso.

O que é a substituição deveria ?

Além disso, é "incorporada barras de ação da barra de ferramentas " um novo conceito ? Eu não acho que eu tenha ouvido falar dele antes .

---

Top 5 Responder

1ianhanniballake @

O http://developer.android.com/reference/android/support/v4/view/PagerTabStrip.html faz parte da biblioteca de suporte ( e tem sido por algum tempo ) e serve como um substituto direto . Se você preferir as guias mais recentes estilo de jogo do Google, você pode usar o https://github.com/astuetz/PagerSlidingTabStrip ou modificar qualquer um dos Google forneceu exemplos http://developer.android.com/samples/SlidingTabsBasic/index.html ou http://developer.android.com/samples/SlidingTabsColors/index.html como explicado neste https://www.youtube.com/watch?v=tRg_eDfQ8fk .

2Kuno @

Parece que eles adicionaram uma nova classe denominada android.widget.Toolbar que se estende ViewGroup . Também eles adicionaram um novo método setActionBar(Toolbar) in Activity . Eu não testei ainda, mas parece que você pode quebrar todos os tipos de TabWidgets, Spinners ou modos de exibição personalizados em uma Toolbar e usá-lo como seu ActionBar .

3matiash @

Agora que o Android 5.0 docs estão disponíveis, temos a https://developer.android.com/reference/android/widget/Toolbar.html :

A barra de ferramentas padrão para uso dentro de conteúdo do aplicativo.

A barra de ferramentas é uma generalização de barras de ação para uso dentro   layouts de aplicação. Enquanto uma barra de ação é tradicionalmente parte de uma   Janela decoração opaca da atividade controlada pela estrutura, uma barra de ferramentas   podem ser colocados em qualquer nível arbitrário de assentamento dentro de uma visão   hierarquia.

Um Toolbar widget também pode ser utilizado para substituir a barra de acção :

Um aplicativo pode optar por designar uma barra de ferramentas como a barra de ação para   Uma atividade que usa o método de setActionBar() .

A depreciação de abas na barra de ação é, provavelmente, devido a isso, uma vez que as barras de ferramentas não pode conter guia si.

Além disso, ele está disponível para Android verions anteriores através da biblioteca AppCompat . Veja https://chris.banes.me/2014/10/17/appcompat-v21/ para mais informações. Um trecho :

Android 5.0 introduz um novo widget Barra de Ferramentas . Esta é uma generalização   do padrão ActionBar mas dá-lhe muito mais controle e   flexibilidade na sua utilização. Toolbar é uma visão na sua hierarquia como   qualquer outra, tornando mais fácil para intercalar com o resto de seus pontos de vista,   animar, reagir a rolar eventos.

4NeoKree @

O novo Toolbar não pode ser usado para insuflar múltiplos objectos de linha, de modo que é impossível adicionar Tabs a ele . Se você quiser usar um Toolbar como um TabWidget você pode inserir alguns objetos Tab para ele, mas apenas com o velho estilo Holo .

https://github.com/neokree/MaterialTabs há uma biblioteca personalizada que usa v7 Toolbar like TabWidget com as novas animações Projeto Material, mas ele usa os mesmos métodos da velha ActionBar Tabs, de modo que você pode anexar seu ViewPager para ele.

5applesauced @

Para "substituição" de ActionBar reprovado, eu mudei o tipo de meus variáveis ​​tipo ActionBar para PagerTabStrip, conforme (antigo código no comentário ):

// ActionBar bigActionBar;
PagerTabStrip bigActionBar;

A "substituição" para .selectTab do ~ ActionBar ( tabindex ) era usar o método de minha ViewPager associado .setCurrentItem (int), como este (antigo código no comentário ):

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

Espero que isso é útil.