10

Recentemente, ho utilizzato Android Design Support Library e ho il seguente codice per la mia barra degli strumenti comprendente.CoordinatorLayout non funziona bene con NestedScrollView e viewpager

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/media_detail_appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     > 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      app:contentScrim="?attr/colorPrimary" 
      > 

      <include 
       layout="@layout/layout_card" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/media_detail_toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:layout_collapseMode="pin" 
       /> 

     </android.support.design.widget.CollapsingToolbarLayout> 

    </android.support.design.widget.AppBarLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     > 

     <android.support.design.widget.TabLayout 
      android:id="@+id/media_detail_tabs" 
      android:layout_width="match_parent" 
      android:layout_height="?android:attr/actionBarSize" 
      android:background="@color/blue_2" 
      app:tabMode="scrollable" 
      /> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/view_pager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      /> 

    </LinearLayout> 

</android.support.design.widget.CoordinatorLayout> 

Ho due frammenti per View Pager. Uno è NestedScrollView e l'altro è Recycler View. Il mio problema è NestedScrollView, ecco il codice qui sotto.

<android.support.v4.widget.NestedScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     > 
    </LinearLayout> 
</android.support.v4.widget.NestedScrollView> 

Il mio problema è che quando si scorre la vista su, non appena il dito si muove un po 'sul lato, si innesca la scorrimento orizzontale per il cercapersone vista. Potresti aiutarmi per evitarlo? Quando scorri verso l'alto e verso il basso, non è necessario attivare la visualizzazione del cercapersone. Funziona bene nel mio frammento di vista del riciclatore. Grazie.

+0

Hai trovato qualche soluzione per questo problema? – dgngulcan

risposta

1

ho provato stesso layout con l'ultima versione di queste librerie

compile 'com.android.support:appcompat-v7:23.1.1' 
compile 'com.android.support:design:23.1.1' 

e funziona bene come previsto, vale a dire:

se il gesto è scorrimento prevalentemente verticale (anche diagonale) NestedScrollView innesca lo scroll, altrimenti se il gesto è principalmente orizzontale swipe (anche con uno scarto verticale minimo) ViewPager attiva lo sfioramento. Per risolvere l'aggiornamento delle tue librerie.

+0

Anche se utilizzo le librerie di supporto 23.1.1, quando si scorre, si sposta verticalmente per 0,5 secondi e quindi continua a spostarsi orizzontalmente. Cambia l'asse quando si scorre ancora – dgngulcan