2

меня NavigationView в моем DrawerLayout и скажем, это имеет простое менюRipple эффект на NavigationView пункта

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:id="@+id/nav_settings" 
     android:icon="@drawable/ic_settings_black_24dp" 
     android:title="@string/title_settings"/> 

</menu> 

Теперь я установить перехватчик для мыши:

mNavigationVeiw.setOnNavigationItemSelected(this); 

@Override 
public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.nav_settings: 
      SettingsActivity.startActivity(this); 
      mDrawerLayout.closeDrawer(GravityCompat.START); 
      return true; 
    } 
    return false; 
} 

Проблема заключается в том, что я не см. эффект пульсации. Когда я долго нажимаю на элемент, рябь показывает, но с кликом она не работает. Я думаю, проблема заключается в том, что я открываю Activity после клика вместо замены фрагментов, и в моем меню должны быть дополнительные опции. Как я могу это исправить?

EDIT

Все отлично работает, когда я установил <group android:checkableBehavior="single">, но в моем случае это не такое поведение, потому что я запускать другую деятельность, и он не должен проверять щелкнул деталь, потому что в этой новой деятельности возвращается кнопка сверху, а не для доступа к навигационному ящику.

+0

вам необходимо заполнить навигационный ящик используя элементы списка. –

+0

, который 'поддерживает версию библиотеки' вы используете? – Ironman

+0

android: background = "? Attr/selectableItemBackground" –

ответ

2

Добавить itemBackground в NavigationView внутри ваш XML-файл следующего атрибута:

app:itemBackground="@drawable/ripple_navigation_selector" 

Кроме того, в папке вытяжки-V21, добавьте ripple_navigation_selector.xml:

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="@color/submit_btn_ripple_color" > 

    <item android:drawable="@color/accentColor" /> 

    <item 
     android:id="@android:id/mask" 
     android:drawable="@android:color/white" /> 

</ripple> 
+1

Отсутствует какая-либо информация здесь. Почему в селекторе пульсации есть две возможности? Что делает что? – Jeffrey