web-dev-qa-db-ja.com

ナビゲーションビューの不要な上部パディングを削除するにはどうすればよいですか?

この図に示されているヘッダーと最初のアイテムの間には、不要な上部パディングがあります。

enter image description here

どのように削除できますか?

ソースコードは次の場所にあります。 https://github.com/chrisbanes/cheesesquare

28
Ahmed Talaat

NavigationViewは、ナビゲーション領域のマテリアルデザイン specs に一致しようとします。通常、NavigationViewをオーバーライドして仕様を明確に破る方法はありません。

material design specs

16
ianhanniballake

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

53

イアンの答えを読んでください。 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" />
29

非常に簡単な手順:次の属性をベースアプリケーションテーマ(stylename = AppTheme)Style.xmlに追加します。

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