汉堡包图标不显示为工具栏中的默认图标

问题描述:

这是我的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

对于此功能,您需要添加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(); 
} 

这应该帮助。

你必须补充的是图标在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 –

添加到您的代码:

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

第一种方法

手动设置的自定义图标汉堡包

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

汉堡包为ActionBarDrawerToggle

然后加入DrawerLayoutActionBarDrawerToggle