2016-02-05 80 views
0

這是我的setUpToolbar方法。它在mainActivity中的onCreate中被調用。我的問題是,爲什麼漢堡圖標不顯示在工具欄和工具欄中顯示工具欄中的後退導航圖標。漢堡包圖標不顯示爲工具欄中的默認圖標

這是我的setUptoolbar方法。

private void setUpToolbar() { 

     Toolbar archiveToolbar = (Toolbar)findViewById(R.id.xmlToolbarMain); 
     setSupportActionBar(archiveToolbar); 

     getSupportActionBar().setDisplayShowTitleEnabled(false); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    } 

,這是我的工具欄的xml:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/xmlToolbarMain" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="#34465d" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      android:transitionName="actionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
      /> 

,這是我的價值觀目錄下的風格:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 


</resources> 

enter image description here

+0

刪除'getSupportActionBar()。setDisplayHomeAsUpEnabled(true);' – camelCaseCoder

+1

它只是刪除後面的圖標,並沒有用這個替換任何東西(我的意思是humburger圖標) –

+0

您是否使用'DrawerLayout'創建NavigationDrawer? – camelCaseCoder

回答

1

對於此功能,您需要添加ActionBarDrawerToggle對象,並同步其與工具欄。

事情是這樣的:

public class DrawerActivity extends AppCompatActivity { 

private DrawerLayout drawerLayout; 
private ActionBarDrawerToggle drawerToggle; 

... 

private void setupDrawerLayout() { 
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.open, R.string.close); 
    drawerLayout.setDrawerListener(drawerToggle); 
} 

... 

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    drawerToggle.syncState(); 
} 

這應該幫助。

1

你必須補充的是圖標在setUpToolbar方法中加入以下代碼

getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu);// whatever your icon name 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
+0

是的,我知道。但我看到在一些代碼中,他們不使用圖標繪製像這樣https://github.com/mikepenz/LollipopShowcase/tree/master/app/src/main/res –

1

添加到您的代碼:

toolbar.setNavigationIcon(R.drawable.hamburger); 
toolbar.setTitle(""); 
+0

是的,我知道。但我看到在一些代碼中,他們不使用圖標繪製像這樣https://github.com/mikepenz/LollipopShowcase/tree/master/app/src/main/res –

+0

是的,這是在一些代碼。您需要在drawable-hdpi,drawable-mdpi,drawable-xdpi中創建圖標... – Stanojkovic

0

第一種方法

手動設置的自定義圖標漢堡包

getSupportActionBar().setIcon(R.drawable.your_hamburger_icon); 

漢堡包爲ActionBarDrawerToggle

然後加入DrawerLayoutActionBarDrawerToggle

相關問題