6

sto usando NavigationView in DrawerLayout per il menu di navigazione del mio app ecco il xml:Navigazione cassetto Menu Effetto Scroll

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawerLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

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

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     android:foreground="?android:attr/selectableItemBackground" 
     android:theme="@style/NavigationDrawerStyle" 
     app:headerLayout="@layout/nav_header_main" 
     app:itemIconTint="@color/textColor" 
     app:itemTextColor="@color/textColor" 
     app:menu="@menu/activity_main_drawer" /> 
    </android.support.v4.widget.DrawerLayout> 

Il problema: non ho nemmeno ho abbastanza elementi per scorrere ma sto vedendo questo effetto durante il tentativo di scorrimento, voglio disabilitare questo effetto, grazie.
Scrolling effect

Aggiornamento

provando entrambi:

android:overScrollMode "never" in NavigationView 

e

navigationView.setVerticalFadingEdgeEnabled(false); 

non ha funzionato.

Sto chiamando il metodo seguito in onCreate():

public void setupDrawerLayout() { 
    drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); 
    ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolBar, R.string.drawer_open, R.string.drawer_close); 
    drawerLayout.setDrawerListener(drawerToggle); 
    drawerToggle.syncState(); 

    navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 
} 

risposta

7

Si sta tentando di disattivare l'ombra di scorrimento. Prova ad aggiungere questo alla tua NavigationView:

android:overScrollMode="never" 

Se la soluzione di cui sopra non funziona, prova ad aggiungere questo nel metodo della vostra attività onCreate() o dovunque si imposta il UI:

mNavigationView.setVerticalFadingEdgeEnabled(false); 

UPDATE

Dopo alcuni test ho scoperto che, in effetti, le soluzioni pubblicate nelle risposte non funzionano. Tuttavia, ho trovato questo lavoro:

for (int i = 0; i < navigationView.getChildCount(); i++) { 
    navigationView.getChildAt(i).setOverScrollMode(View.OVER_SCROLL_NEVER); 
} 

inserirlo nel metodo onCreate(), dopo aver inizializzare il cassetto di navigazione.

+0

Non ha funzionato, l'ho aggiunto per 'NavigationView' e' DrawerLayout' su diverse build, continuando a vedere l'ombra di scorrimento @Bandreid –

+0

Preferisco usare 'ifContentScrolls' invece di' never' se in caso OP aggiunge nuovi articoli in futuro. –

+2

Nella mia esperienza, l'uso di 'ifContentScrolls 'mostrerà comunque un'ombra di scorrimento se il contenuto è in un contenitore scorrevole, anche se non riempie lo spazio verticale. – Bandreid

Problemi correlati