[英]Navigation drawer reload issue in android
我的應用程序中有一個導航抽屜。 我想在按鈕水龍頭上更改導航抽屜布局。 但是每次我切換布局時,它只是被添加到現有的導航抽屜中(顯示重復的條目),但是我想將整個視圖替換為新視圖。
我該如何執行呢?
請參考我的代碼
navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
if (checkIsLoggedIn()){
navigationView.inflateMenu(R.menu.activity_main_drawer_logged_in);
}
else{
navigationView.inflateMenu(R.menu.activity_main_drawer_logged_out);
addHeaderLayout(navigationView);
}
在這里,根據checkIsLoggedIn()的狀態,代碼中的activity_main_drawer_logged_in和activity_main_drawer_logged_out都已膨脹。
問題:如果我在導航抽屜顯示登錄布局時從應用程序注銷
然后,activity_main_drawer_logged_out和activity_main_drawer_logged_in布局的內容都顯示在導航抽屜中。
對您的代碼進行這些更改
if (checkIsLoggedIn()){
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.activity_main_drawer_logged_in);
}
else{
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.activity_main_drawer_logged_out);
addHeaderLayout(navigationView);
}
使用上述答案時出現問題。 顯示重復的標題視圖
我發現了一個更好的解決方案,用於在導航視圖標題重復的同時動態添加標題視圖。 這是代碼片段。
if (navigationView != null) {
for (int i = 0; i < navigationView.getHeaderCount(); i++) {
if (navigationView.getHeaderView(i) != null)
navigationView.getHeaderView(i).setVisibility(View.GONE);
}
addHeaderLayout(navigationView);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.