Android记录 透明状态栏+固化的沉浸模式的简单实现
代码中实现透明状态栏的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class MainActivity extends AppCompatActivity { private ActivityMainBinding _binding; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); translationStatusBar(); _binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(_binding.getRoot()); } // 透明状态栏 private void translationStatusBar() { if (Build.VERSION.SDK_INT >= 19 ) { View decorView = getWindow().getDecorView(); // 此时使用 View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 时界面会和导航栏重叠 decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); getWindow().setStatusBarColor(Color.TRANSPARENT); } getSupportActionBar().hide(); } } |
代码中简单实现固化的沉浸模式的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | public class MainActivity2 extends AppCompatActivity { private ActivityMainBinding _binding; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setFullscreenAndNoNavigation(); _binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(_binding.getRoot()); } // 沉浸模式 private void setFullscreenAndNoNavigation() { View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); ActionBar actionBar = getSupportActionBar(); actionBar.hide(); } // 沉浸模式、保持 @Override public void onWindowFocusChanged( boolean hasFocus) { super .onWindowFocusChanged(hasFocus); //判断4.4以上版本 if (hasFocus && Build.VERSION.SDK_INT >= 19 ) { //获得DecorView View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE //来帮助你的app来维持一个稳定的布局 | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION //确保appUI的主要部分不会因为被系统导航栏覆盖而结束 | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN //确保appUI的主要部分不会因为被系统状态栏覆盖而结束 | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION //隐藏导航栏 | View.SYSTEM_UI_FLAG_FULLSCREEN //表示全屏,会将状态栏隐藏,只会隐藏状态栏 | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); // SYSTEM_UI_FLAG_IMMERSIVE 非粘性的沉浸式 // SYSTEM_UI_FLAG_IMMERSIVE_STICKY 粘性的沉浸式 } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律