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

如何去除Activity底部边距并实现全屏显示?

解决Activity全屏显示问题

这主要是主题配置问题,通过修改主题属性并配合少量代码就能实现Activity铺满整个屏幕的需求,具体操作如下:

1. 修改主题配置

将当前主题的父类替换为不带ActionBar的版本,并添加全屏相关属性,修改后的主题代码如下:

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.DrinkTracker" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <!-- 隐藏顶部状态栏 -->
        <item name="android:windowFullscreen">true</item>
        <!-- 让内容延伸至屏幕边缘(包括刘海/挖孔区域) -->
        <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
        <!-- 取消系统栏背景绘制,避免残留黑边 -->
        <item name="android:windowDrawsSystemBarBackgrounds">false</item>
    </style>
</resources>

2. 可选:代码强制全屏(适配特殊场景)

如果主题配置后仍存在底部黑边,可在Activity的onCreate方法中添加代码,强制启用沉浸式全屏模式:

Kotlin 版本

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // 设置沉浸式全屏,隐藏状态栏和导航栏
    window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            or View.SYSTEM_UI_FLAG_FULLSCREEN
            or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)
    setContentView(R.layout.your_activity_layout)
}

Java 版本

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // 设置沉浸式全屏,隐藏状态栏和导航栏
    getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    setContentView(R.layout.your_activity_layout);
}

关键说明

  • 替换父主题为NoActionBar可直接移除顶部的应用名称栏;
  • windowLayoutInDisplayCutoutMode用于适配异形屏,确保内容完全覆盖屏幕边缘;
  • IMMERSIVE_STICKY模式下,用户滑动屏幕会临时显示系统栏,松开后自动隐藏,不影响全屏体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:40:43