2 ViewPager non scorre in Android 2.3

Sto usando il cassetto di navigazione nella mia applicazione, che contiene alcuni frammenti proprio come nell'image qui sotto.

immettere qui la descrizione dell'immagine

  • Come get l'ID del contatto di posta elettronica?
  • Android NDK, due librerie statiche e un collegamento
  • Visualizzazione del tempo in formato AM / PM in android
  • Come aggiungere tabhost con il cassetto di navigazione?
  • Schede che vengono visualizzate sopra la barra d'azione quando si gonfia il layout personalizzato
  • Questa versione dell'applicazione non è configurata per la fatturazione tramite Google Play
  • Ogni frammento contiene un altro ViewPager che è un ImageSlider, e sotto che è una listview e in alto sto utilizzando SwipeRefreshLayout. Il mio problema è che il dispositivo di scorrimento delle immagini funziona bene sui dispositivi che dispongono di versione Android 3.0 o superiore ma lo scorrimento a sinistra oa destra non funziona sui dispositivi 2.3 e inferiore, invece invoca lo spostamento di Parent ViewPager che naviga il frammento. Sto usando la libreria di versione 4 per questo scopo per supportre i dispositivi inferiori a 3.0. Tutte le funzioni funzionano abbastanza bene su 2.3 dispositivi tranne quello. Ho scoperto, ma non ho trovato alcun aiuto da nessuna parte. Quindi per farlo scorrere che cosa devo fare per questo, qualsiasi idea / aiuto sarà altamente apprezzato.

  • La geolocalizzazione di Phonegap a volte non funziona su android
  • Android, caricando una foto da ospitare su imgur in modo programmato
  • BottomSheetBehavior non funziona quando la libreria di progettazione viene aggiornata a 24.2.0
  • Come creare un file .jar da un progetto Android Studio
  • Come testare l'applicazione Android nella configuration di Galaxy S4 utilizzando l'emulatore?
  • Webview di Android - La pagina web dovrebbe adattarsi allo schermo del dispositivo
  • 2 Solutions collect form web for “2 ViewPager non scorre in Android 2.3”

    È ansible utilizzare questo ViewPager come ViewPager genitore. Ciò consente al bambino ViewPager di scorrere.

     public class CustomViewPager extends ViewPager { public CustomViewPager(Context context) { super(context); } public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { try { //Handle the issue only in lower versions of android if (v != this && v instanceof ViewPager && CJRAppCommonUtility.getOSVersion() < android.os.Build.VERSION_CODES.HONEYCOMB) { ViewPager viewPager = (ViewPager) v; int currentPage = viewPager.getCurrentItem(); int size = viewPager.getAdapter().getCount(); //if ViewPager has reached its end and if user tries to swipe left allow the parent to scroll if (currentPage == (size - 1) && dx < 0) { return false; } //if ViewPager has reached its start and if user tries to swipe right allow the parent to scroll else if (currentPage == 0 && dx > 0) { return false; } //Allow the child to scroll hence blocking parent scroll else { return true; } } return super.canScroll(v, checkV, dx, x, y); } catch (Exception e) { e.printStackTrace(); return false; } } } 

    Il sito degli sviluppatori Android ha una bella spiegazione sulla gestione degli events di contatto in un Viewgroup . Puoi riferirlo qui: http://developer.android.com/training/gestures/viewgroup.html

    Spero che sia d'aiuto!!

    Nella versione precedente di Android demandDisallowInterceptTouchEvent non funziona così grande. La soluzione qui è quella di estendere la visualizzazione di pager e sovrascrivere l'onInterceptTouchEvent e memorizzare un elenco di bambini scrollabili. Quindi, quando si è chiamatoInterceptTouchEvent, è ansible eseguire iterazioni nell'elenco dei bambini scrollabili, get il loro colpo diretto e vedere se l'evento di contatto è all'interno del rientro. Se è vero, puoi tornare falso per non gestirlo e lasciare che il bambino lo prenda.

    Qualcosa come questo:

     @Override public boolean onInterceptTouchEvent(MotionEvent ev) { for (View view : scrollableChildren) { // get the hit rectangle for the view Rect rect = new Rect(); view.getHitRect(rect); // check to see if the click was inside this child if (rect.contains((int) ev.getX(), (int) ev.getY())) { return false; } } return super.onInterceptTouchEvent(ev); } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.