Le migliori pratiche, che conciliano la lista e non di elenco vista, come il mercato
-
19-09-2019 - |
Domanda
Sto cercando di affrontare un problema che apparentemente molti sviluppatori Android hanno, che è il modo di intervallare liste con dati non-lista, in un unico grande pannello scorrevole.
Il modello che ho in mente è la schermata di una singola app nel mercato. Hai una descrizione grande, un elenco di alcuni commenti pigramente caricati, e quindi alcuni singoli elementi che fanno cose diverse, come visitare la pagina web dello sviluppatore, li chiamano, ecc e poi tra di loro tutti, sono belle intestazioni di sezione.
Emulazione questo approccio sembra essere estremamente difficile. Ho letto abbastanza SO risposte e le mailing list i messaggi di sapere di non mettere un ListView all'interno di uno ScrollView, ma voglio lo stesso effetto senza utilizzare AddHeader () e addFooter () con molto complessi vista di intestazione e piè.
Ho provato con un LinearLayout che I stock con vista me stesso, ma non riesco a ottenere i piacevoli effetti click che voci di elenco di default hanno (lo sfondo arancione, bianco per lungo-click, etc.).
Che cosa devo fare?
Soluzione
Date un'occhiata al mio MergeAdapter
, che è stato progettato per gestire situazioni di questo tipo.
Altri suggerimenti
Perché non usare un colpo di testa? È facile. Definire i contenuti di intestazione in un formato distinto. Il layout di attività contiene nulla, ma il ListView
che si desidera in fondo. No vista di scorrimento!
Quindi chiamare
View headerView = getLayoutInflater().inflate(R.layout.header_layout, null);
ListView listView = (ListView) findViewById(R.id.my_list_view);
listView.addHeaderView(headerView, null, false);
E 'fondamentale per chiamare quella forma di addHeaderView
in modo che l'intestazione è disabilitato. In caso contrario, può essere selezionato, che appare del tutto strano.
L'esempio di Mark avrebbe funzionato. Fondamentalmente è necessario un adattatore con diversi tipi di vista. Un altro bell'esempio è http://jsharkey.org / blog / 2008/08/18 / separa-liste-con-header-in-android-09 / che potrebbe funzionare meglio di Marco perché si vuole avere separatori e le cose di gruppo insieme.