汉堡包图标未显示为工具栏中的默认图标
Hamburger icon doesn't show as default icon in toolbar
这是我的 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"
/>
这是我在 values 目录下的风格:
<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>
您必须通过在 setUpToolbar
方法中添加以下代码来添加该图标
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu);// whatever your icon name
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
将此添加到您的代码中:
toolbar.setNavigationIcon(R.drawable.hamburger);
toolbar.setTitle("");
对于此功能,您需要添加 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();
}
这应该有所帮助。
第一种方法
手动设置自定义汉堡图标
getSupportActionBar().setIcon(R.drawable.your_hamburger_icon);
或
汉堡包适合 ActionBarDrawerToggle
然后添加DrawerLayout
和ActionBarDrawerToggle
这是我的 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"
/>
这是我在 values 目录下的风格:
<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>
您必须通过在 setUpToolbar
方法中添加以下代码来添加该图标
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu);// whatever your icon name
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
将此添加到您的代码中:
toolbar.setNavigationIcon(R.drawable.hamburger);
toolbar.setTitle("");
对于此功能,您需要添加 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();
}
这应该有所帮助。
第一种方法
手动设置自定义汉堡图标
getSupportActionBar().setIcon(R.drawable.your_hamburger_icon);
或
汉堡包适合 ActionBarDrawerToggle
然后添加DrawerLayout
和ActionBarDrawerToggle