2014-09-29 13 views
25

Voglio realizzare questo comportamento [https://github.com/gleue/TGLStackedViewController] in un app che sto cercando di fare.Crea UI come Chrome per Android

La cosa più vicina/l'effetto che voglio ottenere è come il browser Google Chrome si comporta.

  1. Tile/interfaccia scheda
  2. Essere in grado di accedere a un modulo di navigazione (accesso altre schede) quando l'utente tira giù la barra degli indirizzi
  3. in grado di ri-organizzare le schede in qualsiasi ordine i desideri degli utenti

Foto tratta da questo Android Layout : How to implement a UI similar to deck of cards? domanda SO

C'è qualcuno che ha provato a implementare questo tipo di comportamento? Ragazzi, conoscete qualche biblioteca che possa aiutare a raggiungere questo effetto? Sarebbe molto utile! Grazie

+0

leggi su ViewGroup e in particolare sul metodo OnLayout, quindi sarà più semplice creare una scheda personalizzata come il contenitore – pskink

+0

Cosa c'è di sbagliato con TGLStackViewController? –

+0

@KevinCrain Sto cercando una libreria per ANDROID :) – momoja

risposta

7

Se hai voglia di guardare attraverso il codice AOSP, la funzionalità che stai cercando è in realtà open source e puoi trovarla in Android 5.0 nella schermata delle app recenti. This è il codice che si desidera vedere su github. La vista che si desidera estrarre da AOSP è RecentsView. Questo sarebbe l'approccio migliore.

Si potrebbe anche prendere in considerazione l'estensione di StackView e l'override di onLayout() in modo da farli allineare ai bambini.

Un'altra opzione è quella di estendere ListView, sostituire o drawChild methots layout e cercare di spostare il punto di vista secondo la loro posizione. È possibile trovare qualche ispirazione here e here

+0

Ciao Andrei, grazie mille per questo. Sì, ho già provato a esaminare questo, e se leggo il codice giusto, stanno usando un ScrollView personalizzato per questo ... Non lo capisco più di tanto, è per questo che sto cercando di implementarlo su un ListView e personalizzazione di DrawChild utilizzando le operazioni della fotocamera e della matrice. Grazie comunque. – momoja

22

systemUI/Recents pacchetto, come detto da Andrei, può essere il punto di partenza. Aggiunge un po 'di più alla versione piatta delle schede cromate.

Ho avuto intenzione di refactoring pacchetto systemUI/Recents da quando ho ricevuto l'aggiornamento L. Finalmente ci sono arrivato.

enter image description here

un progetto di esempio è ospitato presso: Link

Anche se il viewgroup ricicla, aggiorna la mappa corso (proprietà secondarie) per tutti i bambini in ogni passo di scorrimento. Ciò porterà a ritardi con set di dati di grandi dimensioni. Per poche centinaia, dovrebbe andare bene.

Il progetto di esempio utilizza Picasso per caricare e memorizzare nella cache le immagini da LoremPixel. Poiché si tratta di immagini casuali, & potrebbe ripetersi, è possibile verificare che siano collegate correttamente osservando in basso a sinistra nell'immagine.

+0

Ciao Vikram, grazie per aver condiviso questo progetto di esempio e sono sicuro che non aiuterà solo me ma anche molti altri sviluppatori. Ho già provato a esaminare l'implementazione AOSP, ma il problema che ho è che è solo per Kitkat e Lollipop giusto? Sto anche cercando di supportare ICS. Ma grazie per questo. – momoja

+2

@momoja Ciao, 'DeckView' (e il codice AOSP su cui si basa) utilizza le API disponibili solo su Lollipop e versioni successive. Quindi, nessun kitKat supporta neanche. Sono fiducioso che sarò in grado di ridurre i requisiti minimi di sdk nelle prossime settimane. Non posso promettere supporto per ICS in questo momento :(- la pagina github verrà aggiornata con le informazioni rilevanti – Vikram

+0

Sì @Vikram Prego che tu faccia. Non segnerò il tuo commento come risposta accettata ... almeno non ANCORA. spero che tu capisca, spero che tu possa avere successo e aggiornarlo qui perché la comunità apprezzerebbe molto il contributo – momoja