Autore Topic: Mese che cambia in un viewpager  (Letto 169 volte)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Mese che cambia in un viewpager
« il: 12 Settembre 2016, 15:27:20 CEST »
0
Salve a tutti!

Dopo mesi di digiuno sono tornato con un piccolo problema.

Nella mia applicazione ho create un viewpager che fa da galleria (il contenuto del viewpager non è importantissimo), oltre alla galleria c'è anche indicato il mese collegato a questa galleria (settembre,ottobre,novembre ecc.).
La galleria parte con il mese attuale (in questo momento "settembre") e ha un tot di pagine precedenti (agost,luglio ecc).
Il tutto è all'interno di un fragment.

Il mio problema è la gestione "corretta" della visualizzazione del mese, cioè quando faccio lo swipe per vedere il mese precedente mi deve caricare il mese giusto e stessa cosa se vado in avanti e mi avvicino al mese attuale.
Essendo il tutto dentro un fragment ho già fatto
Codice (Java): [Seleziona]
 extends FragmentActivity quindi non posso fare
Codice (Java): [Seleziona]
extends ViewPager.SimpleOnPageChangeListener che mi risolverebbe tutto.

Ho provato a con questo metodo:
Codice (Java): [Seleziona]
 myPager.setOnTouchListener(new ViewPager.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            float x = event.getX();

            switch(event.getAction()){
            case MotionEvent.ACTION_DOWN:
                mStartDragX = x;
                break;
            case MotionEvent.ACTION_MOVE:
    if (event.getX() > mStartDragX) {
            Log.i(TAG, "SWIPING RIGHT");
            mStartDragX = event.getX();
        } else if (event.getX() < mStartDragX) {
            Log.i(TAG, "SWIPING LEFT");
            mStartDragX = event.getX();
        }
                break;
            }
            return false;
        }
    });

ma con questo metodo mi registra 2 volte lo swipe e muove la galleria di una posizione.

Sperando di essere stato abbastanza chiaro.... avete suggerimenti?

Grazie mille!

Offline DCode

  • Utente junior
  • **
  • Post: 69
  • Respect: +20
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 16.04 LTS
Re:Mese che cambia in un viewpager
« Risposta #1 il: 12 Settembre 2016, 15:50:42 CEST »
0
Potresti implementare l'OnPageChangeListener sul ViewPager

Codice (Java): [Seleziona]
viewPager.setOnPageChangeListener( new ViewPager.OnPageChangeListener()
{
     @Override
     public void onPageSelected(int position)
     {}

     @Override
     public void onPageScrollStateChanged(int state)
     {}

     @Override
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
     {}
});
« Ultima modifica: 12 Settembre 2016, 15:55:09 CEST da DCode »
┻━┻ ︵ヽ(°□°ヽ) Develop w/ ( ( ObjC || Swift ) && Java[ "Android" ] ) (╯°□°)╯︵ ┻━┻

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Mese che cambia in un viewpager
« Risposta #2 il: 12 Settembre 2016, 16:00:12 CEST »
0
Perfetto!

Ho avuto un'attimo di problemi quando dovevo inizializzare la data perché la variabile che la dichiarava era in una classe diversa rispetto a quella che gestisce il pager ma ho risolto con un true/false senza problemi.

Grazie mille!