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

Android 15中Toolbar菜单图标与系统图标重叠问题求助

Android 15(API 35)Toolbar图标与系统图标重叠的解决方法

问题分析

Android 15(API Level 35)对系统状态栏的布局逻辑做了调整,导致传统Toolbar的action item可能侵入系统图标所在区域,出现重叠现象。结合你提供的布局和menu配置,以下是几种可行的解决方式:

解决方法

1. 开启Toolbar的系统窗口适配

在MaterialToolbar的布局中添加android:fitsSystemWindows="true"属性,让Toolbar自动适配系统窗口的insets,避免内容侵入状态栏区域:

<com.google.android.material.appbar.MaterialToolbar
    android:id="@+id/rootToolbar"
    android:minHeight="?attr/actionBarSize"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?android:attr/colorPrimaryDark"
    android:fitsSystemWindows="true"/>

2. 手动处理WindowInsets(代码层面)

如果布局属性不生效,可以在Activity/Fragment中通过代码为Toolbar设置正确的padding,适配系统状态栏的高度:

// Kotlin示例
rootToolbar.setOnApplyWindowInsetsListener { view, insets ->
    val statusBarInsets = insets.getInsets(WindowInsets.Type.statusBars())
    view.setPadding(view.paddingLeft, statusBarInsets.top, view.paddingRight, view.paddingBottom)
    insets
}

Java版本:

// Java示例
rootToolbar.setOnApplyWindowInsetsListener((view, insets) -> {
    WindowInsets.StatusBarsInsets statusBarInsets = insets.getInsets(WindowInsets.Type.statusBars());
    view.setPadding(view.getPaddingLeft(), statusBarInsets.top, view.getPaddingRight(), view.getPaddingBottom());
    return insets;
});

3. 调整Menu Item的显示策略

你当前的menu中所有item都设置了app:showAsAction="always",过多图标会挤压到系统区域。可以将部分非核心功能的item改为ifRoom,让它们自动进入overflow菜单:

<item
    android:id="@+id/exit"
    android:orderInCategory="6"
    app:showAsAction="ifRoom" <!-- 修改此处 -->
    android:visible="true"
    android:icon="@drawable/power"
    android:title=""/>

4. 更新Material Components库版本

确保你使用的Material Components库是最新版本(建议1.12.0及以上),新版本通常会适配Android 15的系统变化:

dependencies {
    implementation 'com.google.android.material:material:1.12.0'
}

重叠效果示例

Toolbar图标与系统图标重叠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 00:49:56