Android右滑退出+沉浸式(透明)状态栏.docx
Android右滑退出+沉浸式(透明)状态栏
先上效果图:
右滑退出+沉浸式(透明)状态栏效果.gif
一、添加 SwipeBackLayout
compile 'me.imid.swipebacklayout.lib:library:1.0.0'
step1:BaseActivity
新建一个继承SwipeBackActivity的BaseActivity类,SwipeBackActivity的代码请看SwipeBackLayout库源码,在onCreate方法内添加如下两行代码。所有继承BaseActivity的页面都能具有滑动效果了。但比如登录页和主页面等部分不需要右滑效果的Activity可以通过setSwipeBackEnable(false)方法禁用右滑效果。
mSwipeBackLayout = getSwipeBackLayout();
// 设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL,EDGE_BOTTOM
mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
step2:设置theme
在style.xml文件中添加以下代码
@style/HoloThemeActivityAnimation
,
true
@anim/activity_open_enter
@anim/activity_open_exit
@anim/activity_close_enter
@anim/activity_close_exit
true
false
step3:AndroidManifest
在AndroidManifest文件中 application节点设置全局主题
android:theme="@style/AppTheme"。
为主界面单独设置不透明主题
android:theme="@style/AppThemeNoTranslucent"。
二、加入沉浸式状态栏效果
先上效果图:
效果图.png
关于沉浸式状态栏这个资料现在很多,但感觉很多介绍的并不全面,我自己也试过挺多方法后才有了目前这个方案。
step1:首先得设置状态栏透明
关于状态栏透明最开始用的是以下方法,这也是目前在网上看到的比较多的一种方法,但是后来发现在部分5.0以上系统上会有兼容性问题:
//以下方案在部分5.0以上手机内会有兼容性问题,会有一个半透明的背景附在状态栏位置上
final int sdk = Build.VERSION.SDK_INT;
Window window = getWindow();
WindowMana