覆盖 dimens 上的值不再适用于 Android?

Overriding values on dimens no longer working on AndroidX?

我已经覆盖菜单图标和菜单文本之间的 space 一段时间了,但是,当我迁移到 androidx 时,覆盖似乎不再有效.知道如何在 androidx 上覆盖它们吗?

这是我当前对 dimens.xml

的覆盖
<dimen tools:override="true"name="design_navigation_icon_padding">10dp</dimen>
<dimen tools:override="true"name="design_navigation_icon_margin">5dp</dimen>

您可以将新的 material NavigationViewapp:itemIconPadding:

一起使用
<com.google.android.material.navigation.NavigationView
                        ...
                        app:itemIconPadding="@dimen/navigation_icon_padding"/>

dimens.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="navigation_icon_padding">12dp</dimen>
</resources>

在这里,您可以在 Android 库的 Material 组件中找到 attributes used in the new NavigationView

  <dimen name="design_navigation_max_width">280dp</dimen>
  <dimen name="design_navigation_elevation">16dp</dimen>
  <dimen name="design_navigation_item_icon_padding">32dp</dimen>
  <dimen name="design_navigation_item_horizontal_padding">16dp</dimen>

  <dimen name="mtrl_navigation_elevation">0dp</dimen>
  <dimen name="mtrl_navigation_item_icon_padding">14dp</dimen>
  <dimen name="mtrl_navigation_item_icon_size">24dp</dimen>
  <dimen name="mtrl_navigation_item_horizontal_padding">22dp</dimen>
  <dimen name="mtrl_navigation_item_shape_horizontal_margin">8dp</dimen>
  <dimen name="mtrl_navigation_item_shape_vertical_margin">4dp</dimen>

然而,更改这些值的最佳方法是在布局中使用 xml attributes 之类的 itemIconPadding

类似于:

<com.google.android.material.navigation.NavigationView
  ...
  app:itemIconPadding="@dimen/myvalue"/>