修改主题为NoActionBar后ActionBar未完全隐藏、应用标题显示在自定义Toolbar上怎么解决?
解决步骤
你遇到的是自定义Toolbar绑定为支持ActionBar后,框架默认加载应用标题导致的重叠问题,按以下步骤排查修改即可:
确认主题配置正确
确保应用/对应Activity使用的主题是NoActionBar分支,同时显式添加关闭标题和ActionBar的属性,示例主题配置:<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar"> <item name="windowActionBar">false</item> <item name="android:windowNoTitle">true</item> <!-- 其余自定义主题属性 --> </style>同时检查AndroidManifest.xml中,对应
<application>和<activity>节点有没有单独配置其他带ActionBar的主题,优先使用上面的NoActionBar主题。Activity代码中关闭默认标题
如果你在Activity中调用了setSupportActionBar()将自定义Toolbar绑定为支持ActionBar,需要额外调用方法关闭默认显示的标题:- Kotlin示例
val myToolbar = findViewById<Toolbar>(R.id.myToolbar) setSupportActionBar(myToolbar) // 关闭默认标题 supportActionBar?.setDisplayShowTitleEnabled(false)- Java示例
Toolbar myToolbar = findViewById(R.id.myToolbar); setSupportActionBar(myToolbar); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayShowTitleEnabled(false); }如果你不需要用到
onCreateOptionsMenu等ActionBar自带的菜单功能,也可以直接不调用setSupportActionBar()方法,完全自定义控制Toolbar的所有交互,也不会出现默认标题。可选兜底方案
如果以上配置后仍有异常,可以直接给Toolbar自身添加关闭标题的属性,在布局的Toolbar节点中添加:app:title=""直接将默认标题设为空即可避免重叠。
内容的提问来源于stack exchange,提问作者Emz
相关产品推荐
相关产品推荐

