Android Studio中修改themes.xml无法移除ActionBar问题求解
解决方案
第一步:排查配置错误
- 首先删除
values\themes.xml中<!-- Secondary brand color. -->注释后多余的y字符,该无效字符可能导致主题配置加载异常。 - 检查
AndroidManifest.xml中<application>标签与对应<activity>标签的android:theme属性,确认属性值为@style/Theme.Idcard,如果指向其他带ActionBar的主题,修改themes.xml不会生效。 - 确认你的Activity继承自
AppCompatActivity,否则AppCompat/MaterialComponents系列主题不会生效。
第二步:补充主题兜底配置
你遇到的不是系统bug,Theme.MaterialComponents.DayNight.NoActionBar本身已经配置了无ActionBar属性,你看到的“变大的ActionBar”大概率是新版项目模板布局中自带的Toolbar控件,或是主题配置加载异常导致的系统标题栏残留,可在两个themes.xml的Theme.Idcard样式内添加以下属性兜底:
<!-- 彻底禁用系统ActionBar --> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item>
如果你要改用AppCompat主题,将父主题改为parent="Theme.AppCompat.Light.NoActionBar"后同样添加上述两个属性即可。
第三步:移除布局自带的Toolbar
新版Android Studio的View体系项目默认会在布局文件中添加androidx.appcompat.widget.Toolbar控件,Jetpack Compose项目默认会在页面代码中添加TopAppBar组件,这部分组件不属于系统ActionBar,主题配置无法将其移除,手动删除布局/Compose代码中的对应组件即可完全消除顶部栏。
内容的提问来源于stack exchange,提问作者Mehrshad
相关产品推荐
相关产品推荐

