失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android沉浸式模式简书 Android 沉浸式模式与常见状态栏和导航栏效果

android沉浸式模式简书 Android 沉浸式模式与常见状态栏和导航栏效果

时间:2021-01-23 23:05:52

相关推荐

android沉浸式模式简书 Android 沉浸式模式与常见状态栏和导航栏效果

Android沉浸式模式

官方称沉浸式状态栏为沉浸式模式。

什么是沉浸式?

沉浸式就是让人专注当前的(由设计者营造)情境下感到愉悦和满足,而忘记真实的情境。

什么是Android中的沉浸式?

当启用该模式,应用程序的界面将占据整个屏幕,自动隐藏系统的状态栏和导航栏,让应用程序内容可以在最大显示范围呈现,增加大屏体验,而当需要查看通知的时候只需要从顶部向下滑动就能呼出通知栏。

一个应用程序界面有有如下元素:

而打造沉浸式模式的用户体验就是要将这些系统元素全部隐藏,只留下主题内容部分。先看一下效果图:

进入程序时,自动隐藏了状态栏和导航栏。当用户从顶部向下滑动就能呼出半透明的状态栏和导航栏。

具体代码如下:

public class MainActivity extends AppCompatActivity {

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

public void onWindowFocusChanged(boolean hasFocus) {

super.onWindowFocusChanged(hasFocus);

View mDecorView = getWindow().getDecorView();

mDecorView.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 // hide nav bar

| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar

| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY

);

}

}

上面使用的SYSTEM_UI_FLAG_IMMERSIVE_STICKY官方称为粘性沉浸式模式。View.SYSTEM_UI_FLAG_IMMERSIVE为非粘性沉浸式,非粘性沉浸式状态栏和导航栏显示后不再自动隐藏。

注意:onWindowFocusChanged方法里面的代码不能直接写在onCreate方法中,如果这么写当应用处于后台Stoped状态,下次启动应用便执行不到处理沉浸式的代码。Activity生命周期中,真正的visible时间点是onWindowFocusChanged()函数被执行时,所以我们将这段代码写在这个方法中。

其他常见状态栏和导航栏效果

隐藏ActionBar

ActionBar actionBar = getSupportActionBar();

actionBar.hide();

上面的代码需要在放在setContentView方法之前,否则会出现ActionBar显示后再隐藏。如果整个应用没有用到ActionBar我们可以直接在AndroidManifest.xml中将application的theme设置为NoActionBar,如果只是某个activity不用也可以将这个activity的theme设置为NoActionBar。

android:theme="@style/Theme.AppCompat.Light.NoActionBar">

效果图如下:

透明状态栏和导航栏

//透明状态栏和导航栏,隐藏ActionBar

getSupportActionBar().hide();

getWindow().getDecorView().setSystemUiVisibility(

View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);

getWindow().setNavigationBarColor(Color.TRANSPARENT);

getWindow().setStatusBarColor(Color.TRANSPARENT);

效果图如下:

如果觉得《android沉浸式模式简书 Android 沉浸式模式与常见状态栏和导航栏效果》对你有帮助,请点赞、收藏,并留下你的观点哦!

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