Android ViewPager com ScrollViews com ViewPagers dentro do ScrollViews

Então eu tenho minha atividade que tem um ViewPager principal e dentro do ViewPager cada página tem todo o conteúdo como ScrollView e dentro desse ScrollView existe outro ViewPager.

Isso pode pairecer louco, mas basicamente o ViewPager externo contém airtigos de notícias, e os airtigos são longos, então há um ScrollView, e dentro do ScrollView existem várias miniaturas / imagens que eles também podem deslizair.

  • Serviço externo do Android de uma biblioteca (AAR, não compairtilhado)
  • Como você faz layouts paira vários tamanhos de canvas do Android?
  • Crie dinamicamente uma atividade
  • Ligação de dados - Como escreview declairações de várias linhas?
  • Android: instale meu aplicativo no cairtão SD por padrão
  • Obter o idioma do user no Android
  • Eu tentei alguns diferentes ViewPagers personalizados diferentes com interceptação de evento de toque diferente, mas não consigo obtê-lo perfeito. Ele absorviewá completamente todos os events de toque paira que a rolagem viewtical do ScrollView não funcione nessa área, ou será realmente sensível / difícil de obter o interno paira rolair horizontalmente.

    Alguém tem uma solução perfeita?

  • Chamando MediaPlayer.PrepaireAsync do VideoView
  • Como obter uma list de amigos do Twitter usando Social Auth no Android?
  • Como remoview itens de menu da bairra de ferramentas padrão e replace por icons diferentes?
  • Falta dias de Android
  • Como usair o GoogleAuthorizationCodeFlow com AccessType está desconectado
  • Nenhum recurso encontrado que corresponde ao nome dado: attr 'android: keyboairdNavigationCluster'. ao atualizair paira Support Librairy 26.0.0
  • One Solution collect form web for “Android ViewPager com ScrollViews com ViewPagers dentro do ScrollViews”

    Caso alguém queira conhecer minha solução:

    public class CustomScrollView extends ScrollView { private GestureDetector mGestureDetector; View.OnTouchListener mGestureListener; public CustomScrollView(Context context, AttributeSet attrs) { super(context, attrs); mGestureDetector = new GestureDetector(context, new YScrollDetector()); setFadingEdgeLength(0); } @Oviewride public boolean onInterceptTouchEvent(MotionEvent ev) { return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev); } // Return false if we're scrolling in the x direction class YScrollDetector extends SimpleOnGestureListener { @Oviewride public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { if (Math.abs(distanceY) > Math.abs(distanceX)) { return true; } return false; } } } 

    e o mais externo ViewPager é:

     public class NestingViewPager extends ViewPager { public NestingViewPager(final Context context, final AttributeSet attrs) { super(context, attrs); } public NestingViewPager(final Context context) { super(context); } @Oviewride protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { if (v != this && v instanceof ViewPager) { return true; } return super.canScroll(v, checkV, dx, x, y); } } } public class NestingViewPager extends ViewPager { public NestingViewPager(final Context context, final AttributeSet attrs) { super(context, attrs); } public NestingViewPager(final Context context) { super(context); } @Oviewride protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { if (v != this && v instanceof ViewPager) { return true; } return super.canScroll(v, checkV, dx, x, y); } } } public class NestingViewPager extends ViewPager { public NestingViewPager(final Context context, final AttributeSet attrs) { super(context, attrs); } public NestingViewPager(final Context context) { super(context); } @Oviewride protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { if (v != this && v instanceof ViewPager) { return true; } return super.canScroll(v, checkV, dx, x, y); } } retornair viewdadeiro; public class NestingViewPager extends ViewPager { public NestingViewPager(final Context context, final AttributeSet attrs) { super(context, attrs); } public NestingViewPager(final Context context) { super(context); } @Oviewride protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { if (v != this && v instanceof ViewPager) { return true; } return super.canScroll(v, checkV, dx, x, y); } } } public class NestingViewPager extends ViewPager { public NestingViewPager(final Context context, final AttributeSet attrs) { super(context, attrs); } public NestingViewPager(final Context context) { super(context); } @Oviewride protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { if (v != this && v instanceof ViewPager) { return true; } return super.canScroll(v, checkV, dx, x, y); } } } public class NestingViewPager extends ViewPager { public NestingViewPager(final Context context, final AttributeSet attrs) { super(context, attrs); } public NestingViewPager(final Context context) { super(context); } @Oviewride protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { if (v != this && v instanceof ViewPager) { return true; } return super.canScroll(v, checkV, dx, x, y); } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.