汉堡包图标不显示为工具栏中的默认图标
这是我的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>
对于此功能,您需要添加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);
是的,我知道。但我看到在一些代码中,他们不使用图标绘制像这样https://github.com/mikepenz/LollipopShowcase/tree/master/app/src/main/res –
添加到您的代码:
toolbar.setNavigationIcon(R.drawable.hamburger);
toolbar.setTitle("");
是的,我知道。但我看到在一些代码中,他们不使用图标绘制像这样https://github.com/mikepenz/LollipopShowcase/tree/master/app/src/main/res –
是的,这是在一些代码。您需要在drawable-hdpi,drawable-mdpi,drawable-xdpi中创建图标... – Stanojkovic
第一种方法
手动设置的自定义图标汉堡包
getSupportActionBar().setIcon(R.drawable.your_hamburger_icon);
或
汉堡包为ActionBarDrawerToggle
然后加入DrawerLayout
和ActionBarDrawerToggle
删除'getSupportActionBar()。setDisplayHomeAsUpEnabled(true);' – camelCaseCoder
它只是删除后面的图标,并没有用这个替换任何东西(我的意思是humburger图标) –
您是否使用'DrawerLayout'创建NavigationDrawer? – camelCaseCoder