Autore Topic: Action Bar  (Letto 1209 volte)

Offline Baba

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S II
  • Sistema operativo:
    Windows 7
Action Bar
« il: 07 Ottobre 2012, 13:05:52 CEST »
0
Buongiorno a tutti. Non ho una esperienza molto approfondita in Android e non ho mai realizzato Action Bar per questo sottopongo a voi il mio problema:
nella mia app ho bisogno di un'action bar con 3 tab (ognuno corrispondente ad una diversa activity) identificati da un icon (come instagram o twitter per intenderci) e i vari tab devono contenere dei button che mi permettano di aprire una nuova activity  (non raggiungibile dall'action bar);  l'aperture della nuova activity deve avvenire sempre nel tab perchè non devo perdere l'action bar.

Ho letto qualche tutorial in rete ma non ho le idee molto chiare. Qualcuno può aiutarmi o indicarmi qualcosa?
Grazie!  :-)

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
R: Action Bar
« Risposta #1 il: 07 Ottobre 2012, 19:40:02 CEST »
0
Cerca su google "android Sherlock"

Inviato dal mio Galaxy Nexus con Tapatalk 2


Offline Baba

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S II
  • Sistema operativo:
    Windows 7
Re:Action Bar
« Risposta #2 il: 08 Ottobre 2012, 16:37:05 CEST »
0
Si, ho letto di quella libreria ma al momento non ho la necessità di utilizzare l'app su dispositivi anteriori a 4.0.3.

Se ho capito bene ciò che ho letto in rete dovrei utilizzare dei fragment che cambino in base all'icon selezionata sull'action bar e fin qui ci sono...però non mi è chiaro come sostituire ad un fragment x un fragment y a seguito dell'onClick() su un button nel fragment x e non su un icon dell'action bar. 

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Action Bar
« Risposta #3 il: 10 Ottobre 2012, 09:49:43 CEST »
0

Offline Baba

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S II
  • Sistema operativo:
    Windows 7
Re:Action Bar
« Risposta #4 il: 12 Ottobre 2012, 21:36:30 CEST »
0
Ho sviluppato la mia ActionBar seguendo la documentazione ufficiale di Android ovvero con un'activity in cui viene creata la Bar con i suoi tab (esattamente con questo codice http://developer.android.com/guide/topics/ui/actionbar.html#Tabs) e viene definita la classe TabListener (con metodi onTabSelected() e onTabUnselected()) e le classi (extends Fragment) con il contenuto dei vari tab.
Come già detto, in una di queste classi ho un tasto e nel suo onClick() ho utilizzato la FragmentTransaction (esattamente con questo codice http://developer.android.com/guide/components/fragments.html#Transactions).


Il tutto ''funziona'' ma manifesta due problematiche, secondo me legate:
  • Nel momento in cui, a seguito dell'OnClick() viene eseguita la FragmentTransaction con il nuovo fragment (lo chiamo N per comodità), se si cambia tab dall'ActionBar, quest'ultimo viene sovrapposto ad N e non sostituito, quindi, continuo a visualizzare il contenuto del fragment N (ad esempio una TextView = Nuovo) con sopra il contenuto del tab selezionato dalla Bar (ad esempio una TextView = Tab x).
  • Se sto visualizzando il fragment N, seleziono il tab 2 e poi nuovamente il tab 1, non visualizzo il contenuto di tab1 in quanto compare ancora il fragment N.

Secondo me è necessario utilizzare all'interno dell'onTabSelected() il metodo detach() per rimuovere un eventuale fragment già presente prima che venga effettuato l'add()/attach() del successivo, però non riesco a capire in che modo posso fare questa operazione.
« Ultima modifica: 12 Ottobre 2012, 21:42:09 CEST da Baba »