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

时间:2016-02-05 11:42:10

标签: android android-actionbar hamburger-menu

这是我的setUpToolbar方法。并且它在mainActivity中的onCreate中调用。我的问题是,为什么humberger图标不会在工具栏和工具栏中显示工具栏中的后退导航图标。

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

这是我在dir值下的风格:

<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

4 个答案:

答案 0 :(得分:1)

您必须在setUpToolbar方法

中添加以下代码来添加该图标
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu);// whatever your icon name
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

答案 1 :(得分:1)

将此添加到您的代码中:

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

答案 2 :(得分: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();
}

这应该有所帮助。

答案 3 :(得分:0)

第一种方法

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

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

汉堡适用于ActionBarDrawerToggle

然后添加DrawerLayoutActionBarDrawerToggle