2017-10-07 1 views
1

Ich habe eine Scroll und ein ViewPager enthalten und ein RecyclerView und ich habe Timer zur automatischen Scroll-viewpager Inhalt angewendet und ich will, ist, wenn ich auf Sicht Pager klicken Sie hält down will es nicht automatisch scroll task ausführen und dafür habe ich unten code benutzt.Ich habe in Android ViewPager verwandtes Thema

viewPager.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View view, MotionEvent event) { 
      if (event.getAction() == MotionEvent.ACTION_DOWN) { 
       canScroll = false; 
       Log.e("canScroll", "ACTION_DOWN = " + canScroll); 
      } 

      if (event.getAction() == MotionEvent.ACTION_UP) { 
       canScroll = true; 
       Log.e("canScroll", "ACTION_UP = " + canScroll); 
      } 

      return true; 
     } 
    }); 

    public void pageSwitcher(int seconds) { 
     timer = new Timer(); // At this line a new Thread will be created 
     timer.scheduleAtFixedRate(new RemindTask(), 0, seconds * 1000); // delay 
    } 

    // this is an inner class... 
    class RemindTask extends TimerTask { 
     @Override 
     public void run() { 
      try { 
       getActivity().runOnUiThread(new Runnable() { 
        public void run() { 
         Log.e("canScroll", "RemindTask = " + canScroll); 
         if (canScroll) { 
          if (currentPage < maxPage) { 
           viewPager.setCurrentItem(currentPage); 
           currentPage = currentPage + 1; 
          } else { 
           viewPager.setCurrentItem(currentPage); 
           currentPage = 0; 
          } 
         } 
        } 
       }); 
      } catch (Exception e) { 
       Log.e("Unwanted", "RemindTask- NullPointerException"); 
      } 
     } 
    } 

Und ich möchte, ist, wenn ich scrollen viewpager horizontal es blättern wollen, aber es funktioniert nicht und auch, wenn ich auf viewpager klicken und dann scrollen vertikal die Scroll vertikal gescrollt wird, aber dann kann ich nicht in der Lage zu erkennen MotionEvent.ACTION_UP und wegen dass ich nicht in der Lage in FragmentcanScroll = true zu Autoscroll viewpager Inhalt auszuführen und das Layout festlegen.

Also bitte jemand mir aushelfen.

enter image description here

+0

verschachtelt versuchen Scroll –

+0

Meine eigentlichen Problem wi th Ansicht Pager. –

Antwort

0

Verwendung unter Code

public void pageSwitcher() { 
     final Handler handler=new Handler(); 
     Runnable runnable=new Runnable() { 
      @Override 
      public void run() { 

       getActivity().runOnUiThread(new Runnable() { 
        public void run() { 
         Log.e("canScroll", "RemindTask = " + canScroll); 
         if (canScroll) { 
          if (currentPage < maxPage) { 
           viewPager.setCurrentItem(currentPage); 
           currentPage++; 
          } else { 
           viewPager.setCurrentItem(currentPage); 
           currentPage = 0; 
          } 
         } 
        } 
       }); 
       handler.postDelayed(this,1000); 
      } 
     }; 
     handler.postDelayed(runnable,1000); 
    } 

OnTouch Hörer sind die gleiche wie Ihre

viewPager.setOnTouchListener(new View.OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if (event.getAction() == MotionEvent.ACTION_DOWN) { 
        canScroll = false; 
        Log.e("canScroll", "ACTION_DOWN = " + canScroll); 
       } 

       if (event.getAction() == MotionEvent.ACTION_UP) { 
        canScroll = true; 
        Log.e("canScroll", "ACTION_UP = " + canScroll); 
       } 

       return true; 

      } 


     }); 

in Redmi getestet Gerät Kommentar, wenn eine Abfrage

+0

Es ist nicht das, das ich benötigt habe. –