Эффект прокрутки меню ящика навигации

Я использую NavigationView в DrawerLayout для меню навигации моего приложения, вот xml:

<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>

Проблема: у меня даже недостаточно элементов для прокрутки, но я вижу этот эффект при попытке прокрутки, я хочу отключить этот эффект, спасибо.
Эффект прокрутки

Обновить

пробую оба:

android:overScrollMode "never" in NavigationView

а также

navigationView.setVerticalFadingEdgeEnabled(false);

не работал.

Я вызываю следующий метод в 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);
}

person Canberk Ozcelik    schedule 15.01.2016    source источник


Ответы (1)


Вы пытаетесь отключить прокручивающуюся тень. Попробуйте добавить это в свой NavigationView:

android:overScrollMode="never"

Если приведенное выше решение не работает, попробуйте добавить его в метод onCreate() вашей активности или везде, где вы настраиваете свой пользовательский интерфейс:

mNavigationView.setVerticalFadingEdgeEnabled(false);

ОБНОВЛЕНИЕ

После еще одного тестирования я обнаружил, что действительно решения, опубликованные в ответах, до сих пор не работают. Тем не менее, я обнаружил, что это работает:

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

Добавьте его в свой метод onCreate() после инициализации навигационного ящика.

person Bandreid    schedule 15.01.2016
comment
Это не сработало, я добавил это как для NavigationView, так и для DrawerLayout в разных сборках, но все еще вижу эту прокручивающуюся тень @Bandreid - person Canberk Ozcelik; 15.01.2016
comment
Я предпочитаю использовать ifContentScrolls вместо never, если в будущем OP добавит новые элементы. - person Prerak Sola; 15.01.2016
comment
По моему опыту, использование ifContentScrolls по-прежнему будет отображать тень прокрутки, если содержимое находится в прокручиваемом контейнере, даже если оно не заполняет вертикальное пространство. - person Bandreid; 15.01.2016