2016-04-26 23 views
5

我所有的碎片都通過ActionBarActivitymainActivity)控制,內部mainActivity一個DrawerLayout實現和所有的子片段通過drawerLayout的列表項單擊推。我面對的問題是在通過drawerLayout推送片段之後,我想將抽屜圖標更改爲ToolBar的背部圖標,以便用戶可以導航到之前的片段並處理android.R.id.home的回調相同的片段或內部的mainActivity管理工具欄上的導航和後退按鈕從片段片段的Android

回答

11

你必須添加Fragment背堆和片段經理添加聽者這樣

getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() { 
      @Override 
      public void onBackStackChanged() { 
       if (getSupportFragmentManager().getBackStackEntryCount() > 0) { 
        getSupportActionBar().setDisplayHomeAsUpEnabled(true); // show back button 
        toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          onBackPressed(); 
         } 
        }); 
       } else { 
        //show hamburger 
        getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
        toggle.syncState(); 
        toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          drawerLayout.openDrawer(GravityCompat.START); 
         } 
        }); 
       } 
      } 
     }); 
+0

非常感謝..它工作.. :) – vini

+0

@vini歡迎編碼快樂:) –

+1

Яискалэто оченьдолго!!! Спасибоогромное!!! //我找了很久!!!非常感謝!!! –