如何删除导航视图中不必要的顶部填充?

时间:2015-06-01 22:45:22

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

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

enter image description here

如何删除它?

你可以在这里找到源代码: https://github.com/chrisbanes/cheesesquare

5 个答案:

答案 0 :(得分:50)

您可以在dimens.xml as;

覆盖预定义尺寸
<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

答案 1 :(得分:29)

你应该阅读伊恩的答案。 NavigationView遵循材料指南,您不应该违反这些规范。

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

只需添加到您的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" />

答案 2 :(得分:16)

NavigationView寻求与材料设计specs for the navigation drawer匹配,后者在内容区域之间表示8dp空间。通常,没有办法覆盖NavigationView以明确违反规范。

material design specs

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

在这里Gabriele's answer

回答

只需添加到您的 dimens.xml

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