2012-02-07 12 views
10

Desidero davvero farlo funzionare, ma mi sembra di essere stato in difficoltà per ore. Sto avviando una nuova app e voglio provare a seguire le linee guida dell'interfaccia utente il più vicino possibile, il che per qualsiasi cosa al di sotto del sandwich gelato sembra significare che devo usare ActionBarSherlock. Guardando l'esempio here sembra che dovrebbe essere semplice.Problemi nell'implementazione di schede in ActionBarSherlock 4

cerco di applicarla e non funziona perché FragmentActivity non ha un metodo getSupportActionBar().

Dando uno sguardo alla demo app e sembra che non usano FragmentActivity, usano SherlockActivity. Bene, SherlockActivity ha un metodo getSupportActionBar(), quindi è promettente. Proseguendo con l'esempio per un po '...

Ok, ora sembra che com.actionbarsherlock.app.ActionBar.TabListener non passi FragmentTransaction ai suoi eventi? Non solo, ma SherlockActivity non ha un metodo getSupportFragmentManager() ...

Sono (spero) solo facendo qualcosa di completamente sbagliato? Come continuo a incontrare tutti questi problemi che nessun altro è? Sento che sto impazzendo qui. L'unico problema potenzialmente correlato che ho riscontrato è here e non è molto utile.

+0

Si sta utilizzando la libreria di supporto per supportare i frammenti? O stai mirando a Honeycomb e sopra? – Kekoa

+0

La libreria di supporto. Credo che il piano sia API 7 e successive. – zeonic

risposta

27

è necessario estendere da SherlockFragmentActivity anziché soltanto SherlockActivity o SherlockFragment. In questo modo avrai accesso all'ABS e al supporto per i frammenti.

+2

Secondo me, questa è la risposta giusta. Almeno questo ha funzionato per me. Non è necessario utilizzare alcuna libreria aggiuntiva come quella proposta da SimonVT! – Dude

1

mi sono imbattuto in un problema simile cercando di ottenere una vista mappa e frammenti di lavorare con ActionBarSherlock. Vedi my post sulla mailing list.

La soluzione che ho trovato era ottenere i sorgenti per la libreria di compatibilità e modificare lo FragmentActivity per estendere un SherlockActivity invece di un'attività Android standard.

Poi è necessario compilare i sorgenti per la libreria di supporto con il vostro app (in qualche modo).

Nel mio caso sono andato un ulteriore passo per modificare la SherlockActivity di estendere MapActivity, ma dal momento che lei non ha citato le mappe, non avrebbe bisogno di farlo.

Potrebbero esserci altre soluzioni, ma almeno questo ha funzionato.

mi sento di raccomandare l'mailing list come questo progetto sembra cambiare di frequente.

+1

Questo in realtà non funzionerà completamente perché l'implementazione del menu in "FragmentActivity" sovrascriverà ciò che è in "SherlockActivity". C'è uno scopo esplicito della lib di supporto con una corretta implementazione dell'ABS proprio per questa situazione, comunque. –

Problemi correlati