Android-材质设计-导航视图滚动条和拇指颜色

Android-材质设计-导航视图滚动条和拇指颜色,android,material-design,android-navigationview,Android,Material Design,Android Navigationview,有没有办法自定义NavigationView滚动条和拇指颜色。 现在它被报告为bug,无法自定义。bug的链接是 是否有人在navigationview do share的滚动视图中进行了自定义。经过几个小时的研究,我发现这个解决方案有助于动态更改拇指颜色,而不是在xml中 private void navigationViewScrollThumbColor(NavigationView navigationView) { if (navigationView != null) {

有没有办法自定义NavigationView滚动条和拇指颜色。
现在它被报告为bug,无法自定义。bug的链接是


是否有人在navigationview do share的滚动视图中进行了自定义。

经过几个小时的研究,我发现这个解决方案有助于动态更改拇指颜色,而不是在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();
            }

        }
    }
}