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

Android Studio中是否有类似隐藏状态栏的简便方法隐藏导航栏?

导航栏自动隐藏(触摸显示后自动消失)实现方案

针对你需要实现和状态栏相同的"触摸显示、1-2秒自动消失"的导航栏效果,提供两种简便方案:

一、主题配置法(API 30+ 适用)

直接在themes.xml的App主题中添加以下配置,和状态栏的配置方式类似:

<!-- 确保系统栏背景可绘制 -->
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<!-- 关闭导航栏半透明 -->
<item name="android:windowTranslucentNavigation">false</item>
<!-- 设置导航栏为透明,避免显示黑边 -->
<item name="android:navigationBarColor">@android:color/transparent</item>
<!-- 隐藏导航栏,触摸底部区域会临时显示,几秒后自动隐藏 -->
<item name="android:windowHideNavigationBar">true</item>

这种方式无需编写Java/Kotlin代码,配置完成后所有使用该主题的页面都会生效。

二、代码配置法(兼容API 19+)

如果你的App需要兼容更低版本(API 19及以上),可以在Activity的onCreate方法中添加以下代码:

import android.view.View
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        // 配置系统UI可见性,实现沉浸式粘性隐藏
        window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or 
                View.SYSTEM_UI_FLAG_FULLSCREEN or 
                View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
    }
}
  • SYSTEM_UI_FLAG_IMMERSIVE_STICKY是实现"触摸显示后自动消失"的核心Flag,触摸屏幕底部区域时导航栏会临时弹出,无操作1-2秒后自动隐藏。
  • 如果需要在多个Activity中生效,可以封装成BaseActivity统一实现。

注意事项

  • 两种方案可以结合使用:API30+用主题配置,低版本通过代码兼容。
  • 确保你的App主题继承自Material Components或AppCompat主题,避免配置不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 07:06:32