【问题标题】:Disable a color tint in NavigationView only for specified icons仅在 NavigationView 中为指定图标禁用颜色
【发布时间】:2016-07-22 03:47:21
【问题描述】:

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

【问题讨论】:

  • 您找到解决方案了吗?
  • 不,很遗憾。
  • @Wax 你找到解决方案了吗?我需要对一件物品使用两种颜色,其余的为灰色..
  • @sanjeev 老实说,我不记得了,但似乎你只能准备几个 ColorTintLists 并手动设置每个项目(在代码中)
  • @Шах 是的,我们可以做到这一点.. 但是您如何设置所选图标的默认图标颜色?你是说不可能吗?

标签: android android-navigationview


【解决方案1】:

如果这仍然与某人相关,我们最近找到了类似问题的解决方案。

虽然不可能(至少在 API 级别

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),源(在本例中为着色颜色)将被忽略,而目标(要着色的图标)保持不变。

【讨论】:

    【解决方案2】:

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

    val bottomNavigationView: BottomNavigationView = findViewById(R.id.bottomnavigationhome)
    
    // * THIS ONE 
    bottomNavigationView.itemIconTintList = null
    

    【讨论】:

      【解决方案3】:
      navview.setItemIconTintList(null);
      

      祝你好运!

      【讨论】:

      • 它禁用所有项目的颜色
      • 对不起,我的错。然后你可以使用这样的选择器:stackoverflow.com/questions/30967851/…
      • 我的问题是我需要对所有项目使用色调,仅用于未定义某些类别的指定。 ColorTintList 适用于NavigationView 中的所有项目。
      • 您是否尝试过以编程方式获取菜单项,并修改项目的色调?
      • 我尝试在NavigationView 中设置null 中的ColorTintList 并在创建菜单时使用DrawableCompat 为图标着色,但它不起作用。我所有的图标都变成了黑色。
      【解决方案4】:
       Menu menuNav = navigationView.getMenu();
       MenuItem menuItem = menuNav.findItem(R.id.nav_subjects);
      
       // Disable a tint color
       menuItem.setChecked(false);
      

      希望它能回答你的问题。

      【讨论】:

        【解决方案5】:

        如果您想在选择时更改图标的颜色,以下是可能的答案:

        Change Navigation View Item Color Dynamicly Android

        否则你可以设置

        navview.setItemIconTintList(null);

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

        【讨论】:

        • 我需要不同项目的不同颜色状态列表
        • 我也不知道怎么弄的。
        • 喜欢选择和取消选择?
        • 现在,我发个图给它看懂(不知道英文怎么说)
        猜你喜欢
        • 2015-08-17
        • 2017-01-20
        • 1970-01-01
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-24
        • 2017-12-05
        相关资源
        最近更新 更多