如何移除BottomNavigationView中的ActionBar?尝试无ActionBar主题无效
嗨,我来帮你排查下这个头疼的问题!你说试了各种NoActionBar主题都没用,大概率是主题应用的姿势不对,或者有其他代码在“偷偷”显示ActionBar,我给你列几个常见的排查和解决步骤:
确认主题正确应用到目标页面
首先得确保你在AndroidManifest.xml里,给整个应用或者出问题的那个Activity,设置了适配AppCompat的NoActionBar主题。比如:<!-- 给整个应用设置全局主题 --> <application android:theme="@style/Theme.YourAppName.NoActionBar"> ... </application> <!-- 或者只给有问题的单个Activity设置 --> <activity android:name=".MainActivity" android:theme="@style/Theme.YourAppName.NoActionBar"> ... </activity>划重点:如果你用的是
AppCompatActivity(现在大部分项目都是),必须用继承自Theme.MaterialComponents.DayNight.NoActionBar或者Theme.AppCompat.NoActionBar的主题,别用原生的Theme.NoTitleBar,那对AppCompat是不生效的!检查代码里有没有主动“唤醒”ActionBar
有时候可能在Activity的onCreate方法里,不小心写了显示ActionBar的代码,比如:// 这种代码会强制把ActionBar拉出来,哪怕主题是NoActionBar也没用 getSupportActionBar().show();还有一种情况:如果你的布局里加了Toolbar,又调用了
setSupportActionBar(toolbar),那这个Toolbar就会被系统当成ActionBar显示出来。如果不需要的话,要么删掉setSupportActionBar这个调用,要么直接把布局里的Toolbar删掉。排查布局文件里的“伪装者”
看看你的Activity布局文件,是不是偷偷加了<Toolbar>控件?它和ActionBar长得几乎一样,很容易搞混。如果不需要顶部导航栏的话,直接把这个Toolbar控件删掉就行。清缓存重启试试玄学修复
有时候Android Studio的缓存会抽风,主题修改没被正确编译。试试点击菜单栏的Build -> Clean Project,然后Build -> Rebuild Project,再重启下Android Studio,说不定就好了。检查第三方库搞事情
有些第三方UI库可能会自带ActionBar或者偷偷修改主题,如果你用了这类库,去翻翻它们的文档,看看有没有关闭ActionBar的配置项,说不定是它们在搞鬼。
内容的提问来源于stack exchange,提问作者random1132

