Prima domanda su Stack Overflow, scuse se non è ben formato.Android: come creare un'app complessa con schede con viste
Sto sviluppando un'applicazione con schede relativamente complessa e ho già impostato le nozioni di base prima di ottenere informazioni su ActivityGroup e TabActivity deprecate e il modello preferito è utilizzare le visualizzazioni.
Non ho avuto problemi nell'utilizzo delle viste, questa è una domanda sull'architettura piuttosto che sulla sintassi (motivo per cui non ho pubblicato alcun codice). Nello specifico, , come dovrei procedere a ristrutturare l'app per utilizzare le visualizzazioni anziché le attività avviate in corso.
L'app ha cinque schede; due tengono un unico layout, nessun problema lì. Le altre tre schede eseguono un gruppo attività con 2-5 diverse attività (ad esempio una scheda che esegue un'attività per le impostazioni, dove facendo clic su ogni vista si avvia una nuova attività che tratta quella particolare impostazione, premendo il pulsante indietro si ritorna alle impostazioni/attività di visualizzazione più ampie). Se dovessi mantenere ogni Tab come TabActivity, sarebbe comunque abbastanza facile cambiare le transizioni interne in viste anziché in attività separate.
La domanda principale consiste nell'utilizzare SOLO visualizzazioni, nessun gruppo TabActivity/Activity. La stragrande maggioranza della ricerca che ho fatto è stata la discussione sull'opportunità di utilizzare le attività o le viste o sulla sintassi specifica. Non sono stato in grado di raccogliere una chiara idea di come REALMENTE realizzare la transizione alle visualizzazioni attraverso l'intera applicazione.
Se dovessi farlo, non sarebbe l'intera applicazione ora essere in esecuzione in una sola attività - quello che ospita il layout a schede?
Se (1) è vero, come gestirlo? Nonostante la deprecazione di ActivityGroup, tutta la documentazione di Android sembra ancora affermare che è preferibile utilizzare attività separate per aspetti separati della funzionalità, il che ha senso. Il team di sviluppo di Android ha semplicemente deciso che i costi dello stack e del dispositivo hanno reso l'implementazione di TabActivity inefficace?
Se l'applicazione è in esecuzione in una singola attività che gestisce visualizzazioni diverse per ogni scheda (e quindi diverse viste ENTRO una scheda quando necessario), dovrei avere un unico enorme metodo onClick per gestire tutti i clic da qualsiasi vista selezionabile, gestire l'input in base a quale vista è attiva? O dovrei registrare e de-registrare tutti i miei ascoltatori programmaticamente?
Con una sola attività, nessun ascoltatore di clic o qualsiasi ricevitore di trasmissione è in esecuzione tutto il tempo, consumando risorse anche quando non necessarie?
Con una singola attività, il pulsante Indietro uscire dall'intera applicazione da qualsiasi punto della sua funzionalità. Se sto usando le viste, non dovrò sovrascrivere in modo consistente suBackPressed() e gestire attentamente il comportamento dell'app per costringerlo a comportarsi "come un'app Android?"
AM PENSO COMPLETAMENTE SBAGLIATO? È possibile che io stia tentando involontariamente di ricreare la funzionalità ActivityGroup e TabActivity usando invece le viste, quando dovrei adottare un approccio progettuale completamente diverso all'utilizzo delle schede e delle viste.
Quando il popolo di Google dicono che non dovremmo usare attività come schede più, e il signor Mark Murphy si impegna con tanta enfasi, io sono propenso a credere.Semplicemente non sono stato in grado di cercare un modo per passare senza ricorrere a ricreare molte funzionalità di Activity a mano (che probabilmente includerebbe una varietà di hack sporchi).
Apprezzamento anticipato per chiunque voglia affrontare un argomento così vago e sovrascritto.
davvero ottima domanda ... benvenuti a Stack. –