如何替换Android NavigationView HeaderView

how to replace the Android NavigationView HeaderView

我有两个不同的 header xml 布局,想以编程方式在它们之间切换。我的问题是旧布局没有被新布局取代,而是我最终得到了两个 header 布局。我读了很多 , 但它不起作用。

这是我的尝试:如果我 运行 这段代码 3 次,我有 3 headers 而不是替换 header 布局。我想我必须先删除 navigate.getHeaderView(0) 但如何呢?

NavigationView navigate = (NavigationView) findViewById(R.id.navigation_view);
    navigate.getMenu().clear();
    navigate.inflateMenu(R.menu.menu_navigation_exit);
    navigate.inflateHeaderView(R.layout.navigation_view_header_exit);
    View header = navigate.getHeaderView(0);
    streetViewImage = (ImageView) header.findViewById(R.id.street_view_image);
    streetViewImage.set....
    ...

您需要保存 header 视图的引用,然后在您想用其他内容替换它时将其删除。

navigate.removeHeaderView(previousHeaderView)