Android 沉浸式
来源:互联网 发布:软件进口代理 编辑:程序博客网 时间:2024/06/07 05:04
什么是沉浸式
我们看到现在很多app的样式这样的,将系统默认的状态栏和标题栏 还有下面的导航栏隐藏了,有些可能不知道状态栏和标题栏 、导航栏是啥的直接看图吧..
(标题栏 状态栏 导航栏)
(沉浸式实现效果图)
具体实现
1.状态栏完全隐藏,你只需要把下面代码放在Activity的oncreate()中
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(option); ActionBar actionBar = getSupportActionBar(); actionBar.hide(); }}
2.你可能需要系统的状态栏可见,但是背景是透明的那可以使用下面代码(但是注意这样的代码在5.0才有效,需要加判断)
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); getWindow().setStatusBarColor(Color.TRANSPARENT);}ActionBar actionBar = getSupportActionBar();actionBar.hide();
效果图如下
3.如果你需要将下面的导航栏也实现隐藏,可以直接复制下面代码,但是这个会有一个问题你只要点击一下导航栏还是会出来的,解决办法看4
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);View decorView = getWindow().getDecorView();int option = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;decorView.setSystemUiVisibility(option);ActionBar actionBar = getSupportActionBar();actionBar.hide();
实现效果图
4.除了隐藏导航栏之外,我们同样也可以实现和刚才透明状态栏类似的效果,制作一个透明导航栏
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); getWindow().setNavigationBarColor(Color.TRANSPARENT); getWindow().setStatusBarColor(Color.TRANSPARENT);}ActionBar actionBar = getSupportActionBar();actionBar.hide();
效果如图
5.还有一种情况就是我拉一下屏幕顶部或者底部需要让导航栏和标题出来,点击下一屏幕,让他隐藏
具体代码如下
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus && Build.VERSION.SDK_INT >= 19) { View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } }}
ok,到这里沉浸式所有的情况都介绍完了
0 0
- Android 沉浸式 完全沉浸
- Android 沉浸式全屏
- Android 沉浸式状态栏
- android 沉浸式 状态栏
- Android沉浸式
- Android 添加沉浸式
- android 沉浸式状态栏
- android沉浸式状态栏
- Android沉浸式状态栏
- Android 沉浸式状态栏
- android 沉浸式状态栏
- Android沉浸式状态栏
- Android沉浸式状态栏
- android沉浸式标题栏
- Android 沉浸式状态栏
- Android沉浸式状态栏
- android 沉浸式状态栏
- android 沉浸式状态栏
- doGet和doPst的区别
- [转]ARM Compiler 6编译error'#pragma push/pop' is an ARM Compiler 5
- flex弹性布局
- NOR flash 和NAND flash区别深入分析
- 《C和指针》——声明数组参数
- Android 沉浸式
- iOS模仿安卓Material Design的涟漪动画按钮
- 历届试题 九宫重排 (bfs 康托判重)
- dwr实现消息精准推送
- linux 下 awk 命令截取
- java集合框架
- Java数据类型
- c:forEach varStatus属性
- 对于boostrap框架input校验问题