Modalità di navigazione barra azione sono obsoleti in Android L

? matiash @ | Original: StackOverFlow
---

Dando uno sguardo al rapporto API diff per l'anteprima Android " L", vedo che tutti i metodi relativi alla modalità di navigazione nella categoria ActionBar (come setNavigationMode(), addTab(), selectTab(), & amp ; c) . sono ora deprecato .

La documentazione spiega :

Modalità di navigazione barra azione sono obsoleti e non supportate da inline   barre di azione della barra degli strumenti . Considerare l'utilizzo di altri modelli di navigazione comuni   invece .

Qual è la sostituzione presunto ?

Inoltre, è " in linea barre di azione della barra degli strumenti ", un nuovo concetto ? Io non credo di aver sentito parlare prima .

---

Top 5 Risposta

1ianhanniballake @

La http://developer.android.com/reference/android/support/v4/view/PagerTabStrip.html è parte della libreria di supporto ( ed è stato per qualche tempo) e serve come sostituzione diretta . Se preferite le più recenti schede di Google Giochi di stile, è possibile utilizzare il https://github.com/astuetz/PagerSlidingTabStrip o modificare una delle Google fornito esempi http://developer.android.com/samples/SlidingTabsBasic/index.html o http://developer.android.com/samples/SlidingTabsColors/index.html come spiegato in questo https://www.youtube.com/watch?v=tRg_eDfQ8fk .

2Kuno @

Sembra hanno aggiunto una nuova classe denominata android.widget.Toolbar che si estende ViewGroup . Inoltre hanno aggiunto un nuovo metodo setActionBar(Toolbar) in Activity . Non ho ancora provato, ma sembra che si può avvolgere tutti i tipi di TabWidgets, Spinners o visualizzazioni personalizzate in un Toolbar e utilizzarla come ActionBar .

3matiash @

Ora che i Android 5.0 documentazione sono disponibili, abbiamo la https://developer.android.com/reference/android/widget/Toolbar.html :

Una barra degli strumenti standard per l' uso all'interno del contenuto dell'applicazione .

Una barra degli strumenti è una generalizzazione di barre d'azione per l'uso entro   layout dell'applicazione . Mentre una barra delle operazioni tradizionalmente parte di una   Arredamento finestra opaca di attività controllata dal quadro, una barra degli strumenti   possono essere collocati a qualsiasi livello arbitrario di nidificazione all'interno di una vista   gerarchia.

Un widget Toolbar può anche essere usato per sostituire la barra delle azioni :

Un'applicazione possono decidere di nominare una barra degli strumenti, come la barra delle azioni per   un'attività utilizzando il metodo setActionBar() .

La disapprovazione di schede nella barra delle azioni è molto probabilmente a causa di questo, dal momento che le barre degli strumenti non possono contenere scheda stessi .

Inoltre, è disponibile per precedenti verions Android tramite la libreria appcompat . Per ulteriori informazioni, vedere https://chris.banes.me/2014/10/17/appcompat-v21/ . Un estratto :

Android 5.0 introduce un nuovo widget Toolbar . Questa è una generalizzazione   del modello ActionBar ma ti dà molto più controllo e   flessibilità nell'utilizzo esso . Toolbar è una vista nella gerarchia, proprio come   ogni altro, rendendo più facile interleave con il resto dei vostri punti di vista ,   animare, reagire a scorrere gli eventi .

4NeoKree @

Il nuovo Toolbar non può essere utilizzato per gonfiare più oggetti riga, per cui è impossibile aggiungere schede ad esso . Se si desidera utilizzare un Toolbar come un TabWidget è possibile inserire alcune Oggetti a campi ad esso, ma solo con il vecchio stile Holo .

https://github.com/neokree/MaterialTabs c'è una libreria personalizzata che utilizza v7 Toolbar come TabWidget con le nuove animazioni Material design, ma utilizza gli stessi metodi della vecchia ActionBar Tabs, in modo da poter collegare la tua ViewPager ad esso .

5applesauced @

Per ' sostituzione ' di ActionBar deprecato, ho cambiato il tipo di mio variabili ActionBar tipo di PagerTabStrip, come da ( vecchio codice in commento ) :

// ActionBar bigActionBar;
PagerTabStrip bigActionBar;

A ' di ricambio ' per di ~ ActionBar .selectTab ( ​​tabindex ) è stato quello di utilizzare il metodo di mio ViewPager associata .setCurrentItem (int ), come questo ( vecchio codice in commento ) :

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

Spero che questo è utile .