在 android 中移除或隐藏 header navigationView

remove or hide header navigationView in android

我在我的项目中使用设计 23.1.1。我想要没有 header 的抽屉。仅菜单项就足够了。我不添加任何 header 视图(以编程方式或在 XML 中)。但在抽屉里我有空 header。请帮助我如何删除这个空 header.

 <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="right"
        app:menu="@menu/drawer"
      />
  View headerView= LayoutInflater.from(this).inflate(R.layout.drawer_header, null);
        navigationView.addHeaderView(headerView);
navigationView.getHeaderView(0).setVisibility(View.GONE);

我使用虚拟布局。并解决了我的问题,但我认为这很荒谬。

要永久删除它:

包含 NavigationView 小部件的布局是这样的:

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer"/>

只需从中删除 app:headerLayout 行:

    app:headerLayout="@layout/nav_header_main"

尝试将其添加到您的样式文件中 <item name="android:windowFullscreen">true</item>

并从 navigationView xml 中删除 app:headerLayout

并将其添加到您的 navigationView xml :

android:layout_marginTop ="@dimen/abc_action_bar_default_height_material"

它非常适合我。

如果您想删除 header:

navigationView.removeHeaderView(navigationView.getHeaderView(0));

当然,如果你有更多的仇恨者,你必须在某个循环中执行此操作以将它们全部删除。 0是第一个的索引。