1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android标题栏沉浸式 Android沉浸式状态栏方法总结

android标题栏沉浸式 Android沉浸式状态栏方法总结

时间:2022-08-27 21:36:52

相关推荐

android标题栏沉浸式 Android沉浸式状态栏方法总结

为什么用沉浸式状态栏?

也不知道从什么时候开始大部分的App已经全部向沉浸式状态栏靠拢,这种效果应该是想让最顶部的状态栏和项目的标题栏过渡比较融和吧。

不过沉浸式状态栏这种叫法可能不太妥当。

第一种实现方式

其实主要实现的就是顶部状态栏和toolbar的颜色一致达到效果。

Paste_Image.png

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

其中 colorPrimaryDark这个参数就是设置状态栏的颜色,设置状态栏和toolbar或者自定义的标题栏颜色一致的话会显示

状态效果

第二种实现方式

第二种实现方式是把主题布局往上移动,把布局从屏幕的左上角开始计算。所以这种方式需要注意,把顶部状态栏的高度要计算在出来。

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();

布局往上移动的方式

第三种实现方式

第三种表面看来是全屏的方式,然后可以通过滑动顶部来实现状态栏的弹出,然后会自动隐藏掉。这种模式也是真正意义的沉浸式状态栏。

自动隐藏顶部状态栏

实现方式:在Activity中实现如下方法

@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);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。