仅在指定图标的NavigationView中禁用颜色色调

时间:2016-04-02 09:31:32

标签: android android-navigationview

我需要为NavigationView中的某些图标禁用色调颜色,因为它们的颜色定义了类别类型。我该怎么做?
下图显示了我的问题:
enter image description here

5 个答案:

答案 0 :(得分:14)

navview.setItemIconTintList(null);
祝你好运!

答案 1 :(得分:3)

如果你想在选择上改变图标的​​颜色,下面是可能的答案:

Change Navigation View Item Color Dynamicly Android

否则你可以设置

navview.setItemIconTintList(null);

这将给出图标的原始颜色。您可以根据自己的要求使用彩色和灰色图标。

答案 2 :(得分:1)

对于那些使用 Kotlin 的人来说,就是这样做的

val bottomNavigationView: BottomNavigationView = findViewById(R.id.bottomnavigationhome)

// * THIS ONE 
bottomNavigationView.itemIconTintList = null

答案 3 :(得分:0)

 Menu menuNav = navigationView.getMenu();
 MenuItem menuItem = menuNav.findItem(R.id.nav_subjects);

 // Disable a tint color
 menuItem.setChecked(false);

我希望它能回答你的问题。

答案 4 :(得分:0)

如果这仍然适用于某些人,我们最近为类似问题找到了解决方案。

虽然不可能(至少在 API 级别 < 26)上为单个项目设置自定义色调列表,但您可以单独设置色调模式。这对我们有用:

val itemsWithoutTint: List<Int> = listOf(12345)
for (i in 0 until getMenu().size()) {
    val item = getMenu().getItem(i)
    if (item.itemId in itemsWithoutTint) {
        MenuItemCompat.setIconTintMode(item, PorterDuff.Mode.DST)
    }
}

通过将 TintMode 设置为 DST (https://developer.android.com/reference/android/graphics/PorterDuff.Mode),源(在本例中为着色)将被忽略,目标(要着色的图标)保持不变。