Sto tentando di ottimizzare i miei listini, quando vado nelle opzioni sviluppatore e accendo "Mostra limiti layout" ho notato che l'app Gmail ha una gerarchia di visualizzazione completamente piatta? Come si ottiene questa magia nera?In che modo l'app Gmail raggiunge la sua gerarchia di visualizzazione semplice?
risposta
Probabilmente sostituiscono suDraw e disegnano direttamente sulla tela invece di aggiungere viste come elementi secondari.
http://developer.android.com/training/custom-views/custom-drawing.html
Suppongo che la magia non esista dopotutto :( –
Beh, potrei sbagliarmi su pochi dettagli, ma stanno usando una visualizzazione personalizzata. Un widget, se vuoi.
In pratica, si dispone di una classe che estende qualcosa, molto probabilmente una vista, un LinearLayout o un RelativeLayout, piuttosto che si aggiungono a livello di codice gli elementi necessari e assicurarsi di avere metodi per accedere dall'esterno, in modo che quando crei un nuovo "coso", sarai in grado di dargli qualunque testo o immagini desideri.
Nel tuo caso, quello che vorrei fare è un widget che estende LinearLayout e vorrei aggiungere l'immagine, 3 textViews (nome, oggetto, posta effettiva) e un altro TextView per la data. Se vuoi anche la stella, questa sarà un'altra cosa aggiunta, un ImageView. Li muovi in qualsiasi modo tu voglia, e questo è praticamente tutto.
Se vuoi un codice per questo, fammi sapere, ti darò qualche dettaglio in più se proprio ne hai bisogno.
Ma non aggiungere l'immagine e 3 visualizzazioni di testo aggiungono ancora elementi alla gerarchia della vista? Non capisco perché quelle viste non hanno un layoutbound. Sto indovinando che il testo deve essere fatto con un metodo canvas.drawText(), ma non capisco come possano avere un metodo personalizzato di ondraw che anima anche gli avatar? Proverò il tuo suggerimento per vedere se in realtà rimuove i bozzetti di layout. –
Beh, non ne sono sicuro, vuoi controllare questo, ma sono abbastanza sicuro che la gerarchia lo vede come una cosa. Ad esempio, se estendi la tua classe come LinearLayout, la vede come un LinearLayout. – Vlad
È possibile che sia un FrameLayout o RelativeLayout con la vista più in alto (ordine z) che comprende l'altezza/larghezza completa? Forse questa vista in alto ignora o passa sugli eventi click per gestire il clic "stella"? Solo una supposizione selvaggia. – hungryghost
- 1. In che modo java.awt.dialog raggiunge la modalità?
- 2. elenco semplice in gerarchia
- 3. In che modo GMail implementa Comet?
- 4. Caricamento di un controller di visualizzazione e visualizzazione della gerarchia in modo programmatico in Cocoa Touch senza xib
- 5. In che modo Facebook raggiunge lo scrolling infinito?
- 6. In che modo esattamente PHP raggiunge le variabili "dinamiche"?
- 7. Ruota visualizzazione gerarchia 90 gradi
- 8. In che modo una visualizzazione personalizzata può accedere alla sua attività?
- 9. Visualizzazione di una gerarchia (albero) utilizzando knockoutjs
- 10. Come istruire la visualizzazione a schede di Gmail?
- 11. Visualizzazione Gerarchia completa su Agile Consiglio
- 12. In che modo Gmail fa funzionare IE Back senza aggiornare?
- 13. JavaScript - In che modo Disqus gestisce la sua funzione "disqus_config" che contiene una proprietà non definita?
- 14. Visualizzazione gerarchia non rispettata - UI Route (Ionic)
- 15. Script Python che stampa la sua fonte
- 16. C'è un modo semplice per passare tra un progetto e la sua dll
- 17. Perché Google utilizza Canvas nella visualizzazione elenco conversazione app Gmail?
- 18. La visualizzazione di Android si dissolve in modo programmatico
- 19. Visualizzazione delle righe di gerarchia ordinate nel server SQL?
- 20. LINQ: Possiamo creare una semplice lista di gerarchia
- 21. Elemento in RecyclerView che non riempie la sua larghezza match_parent
- 22. Copia/incolla la tabella in gmail
- 23. visualizzazione conversazione di Gmail attiva bookmarketlet/favelet/"scriptlet"
- 24. In che modo jQuery FadeIn conosce la modalità di visualizzazione utilizzata?
- 25. Visualizzazione semplice di OpenStreetMap per Python
- 26. In che modo il sito Web Python genera la sua documentazione online?
- 27. corrispondenza di visualizzazione secondaria alla sua superview usando autolayout
- 28. modo conveniente scrivere interfaccia generica che indica alla sua implementor
- 29. Clojure creare gerarchia di directory - ma non in modo procedurale
- 30. Che cos'è "shva" nell'URL di Gmail?
Visualizzazioni personalizzate, molto probabilmente. – CommonsWare
Mi piacerebbe conoscere anche questa magia nera –
Significa che stanno disegnando l'intero listino all'interno del metodo onDraw per una vista personalizzata? Per qualcosa come la stella o le immagini dell'utente come si otterrebbe? Anche nell'app gmail, facendo clic sull'avatar si genera un effetto inverso, anche loro stanno disegnando quell'animazione? L'immagine stellare richiederebbe un percorso personalizzato? Questa è per me una magia completa. –