2017-02-05 1 views
0

Есть ли способ настроить панель навигации NavigationView и цвет большого пальца.
Сейчас сообщается, как ошибка и неможет быть customized.Link для бага hereAndroid - Дизайн материалов - NavigationView ScrollBar и Thumb Color

Кто-нибудь делали настройку с учетом прокрутки navigationview сделать акцию.

ответ

0

После нескольких часов RnD я нашел это решение, которое помогает в изменении цвета большого пальца динамически не в XML

private void navigationViewScrollThumbColor(NavigationView navigationView) { 

    if (navigationView != null) { 
     NavigationMenuView navigationMenuView = (NavigationMenuView) navigationView.getChildAt(0); 
     if (navigationMenuView != null) { 
      try { 
       Field mScrollCacheField = View.class.getDeclaredField("mScrollCache"); 
       mScrollCacheField.setAccessible(true); 
       Object mScrollCache = mScrollCacheField.get(navigationMenuView); 

       Field scrollBarField = mScrollCache.getClass().getDeclaredField("scrollBar"); 
       scrollBarField.setAccessible(true); 
       Object scrollBar = scrollBarField.get(mScrollCache); 

       Method method = scrollBar.getClass().getDeclaredMethod("setVerticalThumbDrawable", Drawable.class); 
       method.setAccessible(true); 
       method.invoke(scrollBar, getResources().getDrawable(R.drawable.color_of_your_Choice)); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } 
    } 
}