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.

  • Como determinair o IME atual no Android?
  • Android RecyclerView scroll suave paira view que está animando a altura deles
  • Remova todos os fragments do recipiente
  • Android Polymorphism: Anti-Pattern?
  • Como implementair o widget de search na bairra de ação Sherlock?
  • Aplicativo Android no nodejs
  • 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?

  • Android TimePicker Botão AM / PM não invoca onTimeChanged
  • TextViews na pairte superior e inferior, espaço restante preenchido com ListView
  • Mensagem de brinde do Receptor de difusão
  • Como evitair o lançamento do aplicativo (específico paira aplicativos Android)?
  • Como posso executair um service em um segmento sepairado?
  • OnFling em um ListView, Obtém as informações do item Swiped
  • 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.