Autore Topic: Tabella con scroll verticale e orizzontale  (Letto 1249 volte)

Offline a_droid

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +5
    • Mostra profilo
Tabella con scroll verticale e orizzontale
« il: 19 Giugno 2012, 10:40:25 CEST »
0
Salve,
ho bisogno di implementare una tabella che possa scrollare sia in verticale che in orizzontale.
Inoltre questa tabella dovrebbe avere una riga di intestazione fissa quando viene effettuato lo scroll verticale( per poter leggere le intestazioni dei campi quando si effettua lo scroll). Ovviamente durante lo scroll orizzontale l'intestazione deve seguire il resto della tabella..altrimenti i nomi delle colonne non corrispondono più ai valori!
E' possibile fare una cosa del genere su Android? E' molto importante per poter mostrare dei dati in una tabella che ha molte colonne, altrimenti non saprei come fare...
Grazie a tutti per le eventuali risposte

Offline Sandroid

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
Re:Tabella con scroll verticale e orizzontale
« Risposta #1 il: 29 Giugno 2012, 03:52:47 CEST »
0
Ciao.
Sono alle prese con un problema analogo; posso condividere con te quello che ho tentato, magari ci viene qualche idea.
Considera che sono agli inizi con la programmazione sotto Android, quindi puo' essere che stia facendo delle emerite cavolate.
In sintesi, ho definito una Gallery che come figli ha dei LinearLayout composti da una TextView (per il titolo) e una ListView (per i valori delle colonne).

Codice (Java): [Seleziona]
public class ScorrimentoActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                Gallery orizzontale = (Gallery) findViewById(R.id.Galleria);
                orizzontale.setAdapter(new AdattatoreOrizzontale(this));
        }
}


con un main.xml piuttosto semplice:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >

    <Gallery
       android:id="@+id/Galleria"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content" />

</LinearLayout>

AdattatoreOrizzontale e' un'estensione della classe BaseAdapter, con la getView che restituisce la combinazione titolo-lista verticale:

Codice (Java): [Seleziona]
        public View getView(int position, View convertView, ViewGroup parent) {

                LinearLayout datiColonna = (LinearLayout) mInflater.inflate(
                                R.layout.singcol, parent, false);

                TextView titoloColonna = (TextView) datiColonna
                                .findViewById(R.id.TitoloColonna);
                titoloColonna.setText("Titolo " + position);

                ListView scrollo = (ListView) datiColonna.findViewById(R.id.scrollona);
                scrollo.setAdapter(new AdattatoreVerticale(contesto,
                                (String) getItem(position)));

                return datiColonna;
        }


Il file singcol.xml:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >

    <TextView
       android:id="@+id/TitoloColonna"
       android:layout_width="match_parent"
       android:layout_height="wrap_content" />

    <ListView
       android:id="@+id/scrollona"
       android:layout_width="match_parent"
       android:layout_height="match_parent" />

</LinearLayout>


AdattatoreVerticale e' un normale adapter per ListView.

Il risultato presenta un paio di magagne (ad esempio, scorrendo in orizzontale le colonne non mantengono l'eventuale scorrimento verticale, e vengono visualizzate dal primo elemento; inoltre lo scorrimento orizzontale e' possibile solo dalla riga dei titoli), ma grosso modo funziona.
Non e' codice destinato a una app vera, sto facendo esperimenti.