Autore Topic: Gridview Scroll e Linear layout  (Letto 1071 volte)

Offline max246

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    G1
  • Play Store ID:
    Christian
Gridview Scroll e Linear layout
« il: 16 Agosto 2011, 17:41:25 CEST »
0
Il problema che sto affrontando è quello di create una Gridview ( questa fatta ), quando si è arrivati alla fine dello scroll e l'utente cerca di scrollare ancora in basso dovrebbe fare scomparire la gridview e fare apparire una layout.

Allora il sistema l'ho fatto ed ho usato un OnTouchListener, quando l'ultimo oggetto viene visualizzato dall'adapter setto una variabile true e al prossimo scroll down lo visualizza.

Questo funziona si e no, ovvero se si scrolla lentamente le azioni ricevute dal OnTouchListener sono tantissime, se si scrolla velocemente sono poche.

Non ci sarebbe un sistema che quando l'utente prova a scrollare oltre la fine, mi fa comparire il layout?


Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:Gridview Scroll e Linear layout
« Risposta #1 il: 16 Agosto 2011, 18:02:48 CEST »
0
uhm non ci ho capito moltissimo...puoi spiegare meglio? :D

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Gridview Scroll e Linear layout
« Risposta #2 il: 16 Agosto 2011, 18:14:03 CEST »
0
Quoto MagOscuro. Bisognerebbe vedere un po' di codice per capire come hai implementato la cosa. Io comunque passerei l'evento ad un GestureDetector che, se l'ultimo elemento è visualizzato e lo scroll è verso il basso, fa comparire il layout.

Offline max246

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    G1
  • Play Store ID:
    Christian
Re:Gridview Scroll e Linear layout
« Risposta #3 il: 16 Agosto 2011, 18:30:22 CEST »
0
Magari un procedimento a scalette è piu semplice da capire:

=> Utente puo scrollare la gridview
=> Arrivato alla fine della gridview
          => Se l'utente tenta di scrollare ancora in basso
                   => Nasconde la GridView e mostra il Layout nascosto
          => Se l'utente scrolla in su non fa niente


Offline max246

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    G1
  • Play Store ID:
    Christian
Re:Gridview Scroll e Linear layout
« Risposta #4 il: 16 Agosto 2011, 18:32:15 CEST »
0
Codice (Java): [Seleziona]
mGrid.setOnTouchListener(new OnTouchListener() {
                        private boolean lastWasDown = false;
                        private int numScroll = 0;
                        private String way = "";

                        @Override
                        public boolean onTouch(View v, MotionEvent event) {
                               
                                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                        way = "down";
                                        lastWasDown = true;
                                        numScroll = 0;
                                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                        lastWasDown = false;
                                        way= "up";
                                }
                               
                                if (isScrolledDown && lastWasDown
                                                && event.getAction() == MotionEvent.ACTION_MOVE) {
                                        /*if (numScroll == 10) {
                                                grid.setVisibility(View.INVISIBLE);
                                                extra.setVisibility(View.VISIBLE);
                                                notFound.setVisibility(View.INVISIBLE);
                                                listLetters.setVisibility(View.VISIBLE);
                                                numScroll = 0;
                                        } else*/

                                                numScroll++;
                                }
                               
                                Log.d("aa","Scroll: "+way);
                                Log.d("aa","Is down: "+isScrolledDown);
                                Log.d("aa","Num events: "+numScroll);
                               
                                return false;
                        }
                });

Questo è la parte che dovrebbe interagire con lo scroll, solo che se l'utente scrolla veloce non funziona, se l'utente scrolla piano piano funziona

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Gridview Scroll e Linear layout
« Risposta #5 il: 16 Agosto 2011, 18:56:11 CEST »
0
Il problema è che ACTION_UP, ACTION_DOWN E ACTION_MOVE si riferiscono a eventi del dito, ovvero sono rispettivamente associati a: pressione del dito, "rilascio" del dito dallo schermo e movimento del dito a contatto con lo schermo, non alla direzione dello scroll.  Solitamente si usa l'interfaccia GestureDetector, che riconosce il tipo di gesture che viene fatta sullo schermo (per esempio differenzia la semplice gesture di movimento -muovere una view tenendo il dito premuto- dalla gesture scroll -spostare velocemente il dito verso una direzione e rilasciare-). In questo caso, comunque, credo basti solo questo:
Codice (Java): [Seleziona]
if (isScrolledDown&& event.getAction() == MotionEvent.ACTION_MOVE) {
     // Se il movimento è verso il basso (usa la differenza tra event.getY()
     // e la variabile lastY in cui salvi la coordinata dell'ultimo evento)
     if (event.getY()<lastY){
//Visualizza il layout ecc
}
                               

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Gridview Scroll e Linear layout
« Risposta #6 il: 16 Agosto 2011, 22:30:33 CEST »
0
Android Overscroll: Revisited | Jason Fry | Android Mobile Application Developer in Brighton

vedi se ti aiuta, senno c'è anche il mio post sul pull to refresh che ha una cosa che può interessarti!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline max246

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    G1
  • Play Store ID:
    Christian
Re:Gridview Scroll e Linear layout
« Risposta #7 il: 17 Agosto 2011, 11:19:48 CEST »
0
Android Overscroll: Revisited | Jason Fry | Android Mobile Application Developer in Brighton

vedi se ti aiuta, senno c'è anche il mio post sul pull to refresh che ha una cosa che può interessarti!

Il fatto che l'oggetto Gridvie non ha il metodo overscroll , perciò non posso fare così, devo provare a fare qualcosa con il gesture