【问题标题】:How I can remove the unnecessary top padding of the Navigation view?如何删除导航视图不必要的顶部填充?
【发布时间】:2015-08-15 13:33:53
【问题描述】:

在此图片中显示的标题和第一项之间有一个不必要的顶部填充。

如何去除?

您可以在此处找到源代码: https://github.com/chrisbanes/cheesesquare

【问题讨论】:

  • 万一你认为这是一个错误,它不是,而是材料设计指南的一部分。 google.com/design/spec/components/lists.html#lists-specs 应该是你试图让它符合谷歌标准。它是 8dp 内边距。
  • 我不是指标题,我知道这是一个指南。我的意思是第一项和标题之间的顶部填充。
  • 是的,我知道。那应该在那里。它是准则的一部分。看看这里的图片。有一个 8dp 分隔符。它在所有最新的谷歌材料应用程序中。 material-design.storage.googleapis.com/publish/material_v_4/…
  • Gmail 更新与材料设计。但这只是指导方针,可能会被改变。这是一个相当新的支持库,我相信在不久的将来会有更多的自定义。 images.anandtech.com/doci/8671/…
  • 一开始我也不喜欢顶部填充。但是@EugeneH 是对的,它是“官方”材料设计规范,而且绝对是故意的。我使用它的次数越多,它似乎就越具有良好的设计意义。根据标题视图中显示的内容,如果没有填充以区分列表项和标题,可能会出现一些视觉混乱。

标签: android material-design android-support-library android-design-library android-navigationview


【解决方案1】:

您可以覆盖dimens.xml 处的预定义尺寸;

<dimen name="design_navigation_padding_top_default" tools:override="true">0dp</dimen>
<dimen name="design_navigation_separator_vertical_padding" tools:override="true">0dp</dimen>
<dimen name="design_navigation_padding_bottom" tools:override="true">0dp</dimen>

其他可能的值在这里:https://github.com/android/platform_frameworks_support/blob/master/design/res/values/dimens.xml

【讨论】:

【解决方案2】:

您应该阅读伊恩的回答。 NavigationView 遵循 Material 指南,您不应违反这些规范。

但是,目前,您可以在项目中覆盖此值。

只需添加到您的dimens.xml

<dimen name="design_navigation_separator_vertical_padding">0dp</dimen>

警告:

  • 将来 Android 团队可以更改此值!
  • 相同的值应用于列表中的每个分隔符

NavigationView 使用LinearLayout 作为标题视图。 你可以在源码中看到这个布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="vertical"
      android:paddingBottom="@dimen/design_navigation_separator_vertical_padding" />

【讨论】:

  • @headsvk 谢谢。更新了答案
【解决方案3】:

NavigationView 试图匹配材料设计specs for the navigation drawer,它规定了内容区域之间的 8dp 空间。通常没有办法覆盖NavigationView 来专门破坏规范。

【讨论】:

  • 您可以轻松地覆盖此值。可能可以通过编程方式添加此填充以避免这种情况。
【解决方案4】:

非常简单的步骤: 将以下属性添加到您的基本应用程序主题 (stylename=AppTheme) Style.xml :

        <item name="listPreferredItemHeightSmall">18dp</item>

【讨论】:

    【解决方案5】:

    这里回答Gabriele's answer

    只需添加到您的 dimens.xml

    &lt;dimen name="design_navigation_separator_vertical_padding"&gt;0dp&lt;/dimen&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 2015-05-25
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多