0

J'ai une vue déroulante dans ma page d'accueil, à l'intérieur de cette vue de défilement, il y a 2 mises en page pour chaque mise en page pour un recyclage, chaque recyclaged défilera horizontalement. Lorsque j'essaie de faire défiler la vue de recadrage, le défilement de scrollview s'introduit et scrollview commence à défiler dans le sens vertical. J'ai donc essayé le code ci-dessous.Défilement défilant dans une vue de recadrage horizontale dans un scrollview

mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() { 
    @Override 
    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 
     int action = e.getAction(); 
     switch (action) { 
     case MotionEvent.ACTION_MOVE: 
      rv.getParent().requestDisallowInterceptTouchEvent(true); 
      break; 
    } 
    return false; 
} 

@Override 
public void onTouchEvent(RecyclerView rv, MotionEvent e) { 

} 

@Override 
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 

    } 
}); 

Ensuite, je peux contrôler le défilement horizontal quand je touche le recyclerview, mais maintenant le problème est que je ne peux pas faire défiler mon scrolview verticaly quand je touche sur les recyclerviews. Toutes les suggestions pls. Mon besoin exact est que j'ai besoin de vues défilantes et à l'intérieur de la vue de défilement peu de recyclerviews sont là, il fonctionnera comme une application google play store.

enter image description here

C'est ma mise en page

<com.sothree.slidinguppanel.SlidingUpPanelLayout 
    android:id="@+id/sliding_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    sothree:umanoPanelHeight="368dp" 
    sothree:umanoParallaxOffset="2dp" 
    sothree:umanoOverlay="false" 
    android:gravity="bottom" 
    sothree:umanoFadeColor="#00000000" 
    sothree:umanoDragView="@+id/dragView" 
    sothree:umanoScrollableView="@+id/svScroll" 
    sothree:umanoShadowHeight="0dp"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/dragView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/menu" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

     <ScrollView 
      android:id="@+id/svScroll" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical"> 
       <FrameLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"> 
        <android.support.v4.view.ViewPager 
         android:id="@+id/vpImage" 
         android:layout_width="match_parent" 
         android:clickable="false" 
         android:layout_height="170dp" /> 
        <ImageView 
         android:id="@+id/ivDefaultAd" 
         android:layout_width="match_parent" 
         android:layout_height="170dp" 
         android:scaleType="centerCrop" 
         android:src="@drawable/default_ad"/> 

       </FrameLayout> 
       <android.support.v7.widget.CardView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        card_view:cardBackgroundColor="@color/transparent" 
        android:layout_marginBottom="@dimen/space_1_5x" 
        android:layout_marginTop="@dimen/space_1_5x"> 

        <LinearLayout 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:orientation="vertical" 
         > 

         <LinearLayout 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:background="@color/white" 
          android:gravity="center_vertical" 
          android:orientation="horizontal" 
          > 

          <ImageView 
           android:layout_width="25dp" 
           android:layout_height="25dp" 
           android:layout_marginLeft="@dimen/space_2x" 
           android:src="@drawable/ic_image" 
           android:tint="@color/blue"/> 

          <TextView 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:layout_weight="1" 
           android:padding="@dimen/space_2x" 


           android:textSize="@dimen/txt_x_medium" /> 

          <TextView 

           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:gravity="center_vertical" 
           android:text="@string/more" 
           android:textColor="@color/more_orange" 
           android:textSize="@dimen/txt_medium" 
           tools:ignore="UnusedAttribute" /> 
          <ImageView 
           android:layout_width="15dp" 
           android:layout_height="15dp" 
           android:tint="@color/more_orange" 
           android:layout_marginRight="@dimen/space_2x" 
           android:src="@drawable/ic_right_arrow_small"/> 
         </LinearLayout> 

         <View 
          android:layout_width="match_parent" 
          android:layout_height="1dp" 
          android:background="@color/light_gray1" /> 

         <FrameLayout 
          android:layout_width="match_parent" 
          android:layout_height="150dp" 
          android:focusableInTouchMode="true" 
          android:focusable="true" 
          android:background="@color/white"> 
          <com.wang.avi.AVLoadingIndicatorView 
           android:id="@+id/avi" 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:layout_centerInParent="true" 
           android:layout_gravity="center" 

           app:indicatorName="LineSpinFadeLoaderIndicator" /> 

          <android.support.v7.widget.RecyclerView 

           android:layout_width="match_parent" 
           android:layout_height="wrap_content" 
           android:background="@color/transparent" 
           android:orientation="horizontal" /> 
          <LinearLayout 

           android:layout_width="match_parent" 
           android:layout_height="match_parent" 
           android:background="@color/white" 
           android:gravity="center" 
           android:visibility="gone"> 

           <TextView 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="@string/txt_msg_no_data" 
            android:textColor="@color/no_items_txt_color" 
            android:textSize="@dimen/txt_x_medium" /> 
          </LinearLayout> 
         </FrameLayout> 

        </LinearLayout> 
       </android.support.v7.widget.CardView> 

       <android.support.v7.widget.CardView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        card_view:cardBackgroundColor="@color/transparent"> 

        <LinearLayout 

         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:orientation="vertical" 
         > 

         <LinearLayout 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:background="@color/white" 
          android:gravity="center_vertical" 
          android:orientation="horizontal" 
          android:tag="sticky"> 

          <ImageView 
           android:layout_width="25dp" 
           android:layout_height="25dp" 
           android:layout_marginLeft="@dimen/space_2x" 

           android:tint="@color/blue" 
           android:contentDescription="@string/content_desc"/> 

          <TextView 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:layout_weight="1" 
           android:padding="@dimen/space_2x" 
           android:textSize="@dimen/txt_x_medium" /> 

          <TextView 

           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:gravity="center_vertical" 
           android:text="@string/more" 
           android:textColor="@color/more_orange" 
           android:textSize="@dimen/txt_medium" 
           tools:ignore="UnusedAttribute" /> 
          <ImageView 
           android:layout_width="15dp" 
           android:layout_height="15dp" 
           android:tint="@color/more_orange" 
           android:layout_marginRight="@dimen/space_2x" 
           android:src="@drawable/ic_right_arrow_small"/> 
         </LinearLayout> 

         <View 
          android:layout_width="match_parent" 
          android:layout_height="1dp" 
          android:background="@color/light_gray1" /> 

         <FrameLayout 
          android:layout_width="match_parent" 
          android:layout_height="150dp" 
          android:background="@color/white"> 
          <com.wang.avi.AVLoadingIndicatorView 
           android:id="@+id/avLoader2" 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:layout_centerInParent="true" 
           android:layout_gravity="center" 

           app:indicatorName="LineSpinFadeLoaderIndicator" /> 

          <android.support.v7.widget.RecyclerView 

           android:layout_width="match_parent" 
           android:layout_height="wrap_content" 
           android:background="@color/transparent" /> 
          <LinearLayout 

           android:layout_width="match_parent" 
           android:layout_height="match_parent" 
           android:background="@color/white" 
           android:gravity="center" 
           android:visibility="gone"> 

           <CanaroTextView 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="@string/txt_msg_no_data" 
            android:textColor="@color/no_items_txt_color" 
            android:textSize="@dimen/txt_x_medium" /> 
          </LinearLayout> 

         </FrameLayout> 
        </LinearLayout> 
       </android.support.v7.widget.CardView> 
      </LinearLayout> 
     </ScrollView> 


    </LinearLayout> 
</com.sothree.slidinguppanel.SlidingUpPanelLayout> 

+0

Essayez ce lien https://stackoverflow.com/questions/39870099/dynamic-different-images-horizontal-recyclerview-in-vertical-recyclerview-like-g – Ankita

+0

Et aussi un coup d'oeil dans cette http: // android -pratap.blogspot.in/2015/12/horizontal-recyclerview-in-vertical.html – Ankita

Répondre

0

vous devez utiliser NestedScrollView insted de scrollview

NestedScrollView est comme ScrollView, mais il prend en charge agir à la fois comme un parent de défilement imbriqué et enfant sur les deux nouvelles et anciennes versions d'Android. Le défilement imbriqué est activé par défaut.

lire ScrollView vs NestedScrollView

et ne pas oublié de faire votre RecycelrveiwsetNestedScrollingEnabled(false);

setNestedScrollingEnabled(boolean enabled)

il Activer ou désactiver le défilement imbriqué pour ce point de vue.

Code

YourRecyclerView.setNestedScrollingEnabled(false); 
+0

où dois-je définir cette "YourRecyclerView.setNestedScrollingEnabled (false);" sur l'écoute tactile? – ranjith

+0

non @ranjith ajouter 'YourRecyclerView.setNestedScrollingEnabled (false); 'après avoir défini layout manager à votre recyclerviw signifie après la liaison –

+0

J'ai essayé cela, mais mon design est un peu compliqué comme le scrollview entier est dans une disposition de panneau coulissant, et j'ai besoin de la première mise en page devrait coller en haut quand ils atteignent le sommet, c'est pourquoi j'ai utilisé la disposition du panneau coulissant – ranjith

0

Vous pouvez utiliser deux vues recycleur (vue recycleur horizontal imbriqué dans une vue recycleur verticale mère). Ce sera plus efficace et donnera un défilement fluide.