NestedScrollView no juega con Recyclerview dentro

Tengo un diseño como ese:

<NestedScrollView> <RecyclerView> // vertical recycler view <RecyclerView/> // horizontal recycler view <RecyclerView/> <RecyclerView/> ... <RecyclerView> </NestedScrollView> 

El resultado parece Google Play Store: Introduzca aquí la descripción de la imagen

Y he inhabilitado NestedScrolling en horizontal Recycler vista:

 horizontalRecyclerView.setHasFixedSize(true); horizontalRecyclerView.setNestedScrollingEnabled(false); 

Mi problema:

La vista de vertical recyclerview no se desplaza, siempre que ACTION_UP sucede, la ACTION_UP vertical recyclerview también deja de desplazarse.

¿Cómo puedo anidar vertical recyclerview dentro de nestedscrollview , y horizontal recyclerview dentro de reciclerview vertical recyclerview como Playstore y mantener el desplazamiento suave.

Resuelto:

Utilizando la vista de desplazamiento anidada personalizada de @vrund purohit (código de abajo), y deshabilitado nestedscroll tanto vertical y horizontal reciclerview:

 verticalRecyclerView.setNestedScrollingEnabled(false); ... add each horizontal recyclerviews: horizontalRecyclerView.setNestedScrollingEnabled(false); 

Tuve este mismo problema y resolví este problema personalizando NeatedScrollView .

Aquí está la clase para eso.

MyNestedScrollView

 public class MyNestedScrollView extends NestedScrollView { @SuppressWarnings("unused") private int slop; @SuppressWarnings("unused") private float mInitialMotionX; @SuppressWarnings("unused") private float mInitialMotionY; public MyNestedScrollView(Context context) { super(context); init(context); } private void init(Context context) { ViewConfiguration config = ViewConfiguration.get(context); slop = config.getScaledEdgeSlop(); } public MyNestedScrollView(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public MyNestedScrollView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context); } private float xDistance, yDistance, lastX, lastY; @SuppressWarnings("unused") @Override public boolean onInterceptTouchEvent(MotionEvent ev) { final float x = ev.getX(); final float y = ev.getY(); switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: xDistance = yDistance = 0f; lastX = ev.getX(); lastY = ev.getY(); // This is very important line that fixes computeScroll(); break; case MotionEvent.ACTION_MOVE: final float curX = ev.getX(); final float curY = ev.getY(); xDistance += Math.abs(curX - lastX); yDistance += Math.abs(curY - lastY); lastX = curX; lastY = curY; if (xDistance > yDistance) { return false; } } return super.onInterceptTouchEvent(ev); } public interface OnScrollChangedListener { void onScrollChanged(NestedScrollView who, int l, int t, int oldl, int oldt); } private OnScrollChangedListener mOnScrollChangedListener; public void setOnScrollChangedListener(OnScrollChangedListener listener) { mOnScrollChangedListener = listener; } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); if (mOnScrollChangedListener != null) { mOnScrollChangedListener.onScrollChanged(this, l, t, oldl, oldt); } } } 

Codificación feliz.

Utilice debajo del código para desplazamiento suave:

 ViewCompat.setNestedScrollingEnabled(recyclerView, false); 

[RESUELVE] Tengo el mismo problema con Recycleview horizontal. Cambiar el repo de Gradle para recycleview

Compile 'com.android.support:recyclerview-v7:23.2.1' Escribe esto: linearLayoutManager.setAutoMeasureEnabled (true);

Corregido errores relacionados con varios métodos de medida-spec en actualización

Compruebe http://developer.android.com/intl/es/tools/support-library/features.html#v7-recyclerview

He encontrado el problema con la biblioteca 23.2.1: Cuando el artículo es match_parent recicle la visión llene el artículo completo para ver, vaya siempre con la altura mínima o "wrap_content".

Gracias

Añadir esto en su RecyclerView xml:

 android:nestedScrollingEnabled="false" 

He resuelto el problema utilizando el siguiente código:

  myRecyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false){ @Override public boolean canScrollHorizontally() { return true; } @Override public boolean canScrollVertically() { return true; } }); 
  • Android WebView - Fuga de memoria de JavaScript
  • API de Android como java.awt.Robot
  • Excepción Gradle de Android: "Multiple dex files define", clases duplicadas bajo exploded-aar
  • Cómo mantener un archivo jar externo, pero todavía uso de sus clases en mi proyecto de Android?
  • ¿Cuál es el meanining de 3 puntos en parámetros de función?
  • Android: WebView cargar imagen / contenido en el centro
  • Bug z-index ViewPager con PageTransformer no funciona con getChildDrawingOrder
  • ¿Utilizar C # mono para android o java?
  • Crash casting AndroidKeyStoreRSAPrivateKey a RSAPrivateKey
  • Compruebe si el objeto tiene un método en Java?
  • JNI - Llamando a Java desde C ++
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.