You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Navigation Drawer图标大小?多种尝试无果求可行方案

解决Navigation Drawer图标尺寸修改的可行方案

我之前也踩过这个坑,默认的Navigation Drawer汉堡图标确实没法直接通过样式配置搞定,不过这几个方法亲测有效,你可以试试:

方法一:直接调整默认图标的Bounds

拿到Toolbar的导航图标后,通过setBounds()强制设置它的宽高,记得把dp转成像素值:

Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

Drawable navIcon = toolbar.getNavigationIcon();
if (navIcon != null) {
    // 这里的尺寸换成你需要的大小,比如32dp,先转成px
    int iconSize = getResources().getDimensionPixelSize(R.dimen.nav_icon_size);
    navIcon.setBounds(0, 0, iconSize, iconSize);
    toolbar.setNavigationIcon(navIcon);
}

别忘了在res/values/dimens.xml里定义尺寸:

<dimen name="nav_icon_size">32dp</dimen>

方法二:替换为自定义尺寸的图标

直接用VectorDrawable或者png图做一个你想要大小的图标,然后替换默认的导航图标:

比如先创建一个res/drawable/nav_hamburger.xml的Vector图标,直接指定宽高:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="32dp"
    android:height="32dp"
    android:viewportWidth="24"
    android:viewportHeight="24">
    <path
        android:fillColor="@color/white"
        android:pathData="M3,18h18v-2L3,16v2zM3,13h18v-2L3,11v2zM3,6v2h18L21,6L3,6z"/>
</vector>

然后在代码里设置:

toolbar.setNavigationIcon(R.drawable.nav_hamburger);

如果用的是ActionBarDrawerToggle,也可以自定义Toggle的图标尺寸:

ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
        this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
toggle.setDrawerArrowDrawable(new DrawerArrowDrawable(this) {
    @Override
    public int getIntrinsicWidth() {
        return getResources().getDimensionPixelSize(R.dimen.nav_icon_size);
    }

    @Override
    public int getIntrinsicHeight() {
        return getResources().getDimensionPixelSize(R.dimen.nav_icon_size);
    }
});
drawerLayout.addDrawerListener(toggle);
toggle.syncState();

注意事项

  • 如果用VectorDrawable,要确保build.gradle里开启支持:
android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}
  • 不要直接在样式里改android:navigationIconSize,这个属性在很多版本里不生效,还是代码控制更靠谱。

内容的提问来源于stack exchange,提问作者sanu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:51:02