Autore Topic: cambiare layout listview  (Letto 742 volte)

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:cambiare layout listview
« Risposta #15 il: 05 Settembre 2010, 16:09:41 CEST »
0
anzi no, il toRightOf va a "sovrascrivere" il android:layout_alignParentRight="true" ed è un problema :)

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1578
  • Respect: +179
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus w/ CM9
  • Market Developer Name:
    Roberto Leinardi
  • Sistema operativo:
    Ubuntu 11.10
Re:cambiare layout listview
« Risposta #16 il: 05 Settembre 2010, 16:12:28 CEST »
0
Per me è più che risolto:


Se hai problemi col RL apri un nuovo 3d e posta l'xml.
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:cambiare layout listview
« Risposta #17 il: 05 Settembre 2010, 16:14:31 CEST »
0
asd ma fai una sorta di Esse3?? omg era una mia idea come prossimo proggetto per la mia facoltà cmq ok

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1578
  • Respect: +179
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus w/ CM9
  • Market Developer Name:
    Roberto Leinardi
  • Sistema operativo:
    Ubuntu 11.10
Re:cambiare layout listview
« Risposta #18 il: 05 Settembre 2010, 16:16:32 CEST »
0
Faccio solo un libretto elettronico, i voti vanno inseriti a mano, non è prevista l'integrazione con un portale.
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:cambiare layout listview
« Risposta #19 il: 05 Settembre 2010, 16:22:15 CEST »
0
ah cmq bella idea :P

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:cambiare layout listview
« Risposta #20 il: 12 Settembre 2010, 16:30:00 CEST »
0
JD, ma con questa soluzione a te restano estesi una volta che hai scorso la lista?
xkè nel scorrerla se si implementa l'adapter per avere performance ne resta esteso uno ogni tanto, altrimenti si chiudono tutti, come hai risolto?

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1578
  • Respect: +179
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus w/ CM9
  • Market Developer Name:
    Roberto Leinardi
  • Sistema operativo:
    Ubuntu 11.10
Re:cambiare layout listview
« Risposta #21 il: 12 Settembre 2010, 16:36:58 CEST »
0
Come spiegato nei filmati del google i/o, le view dei vari item vengono riciclate, quindi sì, se scorri ti ritroverai altre view espanse.
Sinceramente non ho proprio preso in considerazione il problema, per il momento non è in cima alle mie priorità, vedrò magari in futuro di affrontarlo.
« Ultima modifica: 12 Settembre 2010, 16:45:13 CEST da JD »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:cambiare layout listview
« Risposta #22 il: 12 Settembre 2010, 16:44:58 CEST »
0
infatti , ho visto che anche la tua app, "soffre " dello stesso problema meno della mia xkè gli esami non sono poi così tanti, io invece delle volte mi ritrovo lv di 300 elementi e l'espansione è così grande che il problema si sente:), xò non so come affrontarlo, ci sarebbe una soluzione ma devo fregarmene del riciclo,

una soluzione intermedia l'ho trovata e è quella che uso attualmente ma da un pò fastidio che si chiuda sempre tutto :)
non crea grossi problemi di performance  come reimpostare il layout ogni volta ma ovviamente chiude tutto :)
Codice (Java): [Seleziona]
if (v == null) {
               
               
                LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.resource, null);       
            }
           else
           {
                   LinearLayout l2 = (LinearLayout)v.findViewById(R.id.notexpanded);
               l2.setVisibility(View.VISIBLE);
                               
               LinearLayout ll = (LinearLayout)v.findViewById(R.id.expanded);
                                        ll.setVisibility(View.GONE);
           }

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1578
  • Respect: +179
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus w/ CM9
  • Market Developer Name:
    Roberto Leinardi
  • Sistema operativo:
    Ubuntu 11.10
Re:cambiare layout listview
« Risposta #23 il: 12 Settembre 2010, 16:48:06 CEST »
0
Anch'io stavo implementando qualcosa di simile:
Codice (Java): [Seleziona]
                        if(holder.mPrefs.getBoolean(mContext.getString(R.string.pref_expand_exams_key), false)){
                                holder.tlExpansion.setVisibility(View.VISIBLE);
                                holder.ivExpander.setImageResource(R.drawable.expander_ic_maximized);
                        }else{
                                holder.tlExpansion.setVisibility(View.GONE);
                                holder.ivExpander.setImageResource(R.drawable.expander_ic_minimized);
                        }

Sinceramente non so però se sia meglio chiudere sempre tutto o lasciare le cose come sono ora. Mah...
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:cambiare layout listview
« Risposta #24 il: 12 Settembre 2010, 16:52:12 CEST »
+1
ho un idea, provo ad implementarla e edito, dovrebbe funzionare :P

ok spettacolo:)
allora una mia entry della lv è un oggetto di tipo risorsa, come per te è di tipo esame credo

a questo oggetto aggiungiamo un campo

Codice (Java): [Seleziona]
int expanded;
e quando istanziamo l'oggetto mettiamo

Codice (Java): [Seleziona]
expanded = 0;
ora nel nostro on item click prima di espandere o ridurre facciamo una cosa del tipo

Codice (Java): [Seleziona]
        if (resources.get(arg2).expanded==0){
                                        resources.get(arg2).expanded=1;
                                    }
                                    else
                                    {
                                        resources.get(arg2).expanded=0;
                                    }

bene ora sappiamo se è espanso o ridotto , ora sistemiamo l'adapter
Codice (Java): [Seleziona]
 View v = convertView;
            Log.i("adapter", "position"+position);
            Resource o = items.get(position);
           
           if (v == null) {
                 Log.i("adapter", "item "+items.size());
               
                LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.resource, null);       
            }
           else
           {
                   LinearLayout l2 = (LinearLayout)v.findViewById(R.id.notexpanded);
               l2.setVisibility(View.VISIBLE);
                               
               LinearLayout ll = (LinearLayout)v.findViewById(R.id.expanded);
                                        ll.setVisibility(View.GONE);
           }
        if (o != null) {
                         if(o.expanded==1)
                         {
                                 LinearLayout l2 = (LinearLayout)v.findViewById(R.id.notexpanded);
                        l2.setVisibility(l2.getVisibility()==View.GONE ? View.VISIBLE : View.GONE);
                                       
                        LinearLayout ll = (LinearLayout)v.findViewById(R.id.expanded);
                                                ll.setVisibility(ll.getVisibility()==View.GONE ? View.VISIBLE : View.GONE);
                         }
//qui tutto il resto dell'adapter


se trovi qualcosa di più performante dimmi ma sembra che così non dia problemi

« Ultima modifica: 12 Settembre 2010, 17:06:34 CEST da DX89B »

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1578
  • Respect: +179
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus w/ CM9
  • Market Developer Name:
    Roberto Leinardi
  • Sistema operativo:
    Ubuntu 11.10
Re:cambiare layout listview
« Risposta #25 il: 12 Settembre 2010, 17:19:04 CEST »
0
Ottimo :)

Item che struttura dati è nel tuo caso?
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:cambiare layout listview
« Risposta #26 il: 12 Settembre 2010, 17:22:12 CEST »
0
Codice (Java): [Seleziona]
 private ArrayList<Resource> items;   :-)

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1578
  • Respect: +179
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus w/ CM9
  • Market Developer Name:
    Roberto Leinardi
  • Sistema operativo:
    Ubuntu 11.10
Re:cambiare layout listview
« Risposta #27 il: 12 Settembre 2010, 17:23:20 CEST »
0
Eh, io uso un DB, da me si complica leggermente. E anche come prestazioni non è il massimo adottare la tua soluzione :(
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:cambiare layout listview
« Risposta #28 il: 12 Settembre 2010, 17:31:56 CEST »
0
capisco, io uso un AL perchè è il risultato di una GET/Parsing Json e non devo salvare niente in maniera definitiva
secondo te è possibile fare un'animazione di un mezzo secondo o meno per l'espansione o è meglio lasciar perdere?

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1578
  • Respect: +179
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus w/ CM9
  • Market Developer Name:
    Roberto Leinardi
  • Sistema operativo:
    Ubuntu 11.10
Re:cambiare layout listview
« Risposta #29 il: 12 Settembre 2010, 17:39:23 CEST »
0
Mah, io lascerei perdere ;)

Se lo fai però posta il codice xD
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !