侧滑关闭Activity的解决方案——SwipeBackLayout
项目地址:ikew0ng/SwipeBackLayout: An Android library that help you to build app with swipe back gesture.
我对它做点补充:P)
SwipeBackXActivity.java
public abstract class SwipeBackXActivity extends SwipeBackActivity {
protected abstract int getStatusBarColorId();
protected boolean makeStatusBarContentBlack() {
return false;
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
setStatusBarToTransparent();
setSystemUiVisibilityForDecorView();
initContentView();
}
private void setStatusBarToTransparent() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
}
private void setSystemUiVisibilityForDecorView() {
int visibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
if (makeStatusBarContentBlack()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
visibility |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
}
}
getWindow().getDecorView().setSystemUiVisibility(visibility);
}
private void initContentView() {
ViewGroup content = getWindow().getDecorView().findViewById(android.R.id.content);
content.setFitsSystemWindows(true);
int height = StatusBarUtils.getHeight(this);
content.getChildAt(0).setPadding(0, height, 0, 0);
View statusBar = new View(this);
int id = getStatusBarColorId();
if (id != 0) {
statusBar.setBackgroundColor(getResources().getColor(id));
}
content.addView(statusBar, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, StatusBarUtils.getHeight(this)));
}
}
SwipeBackXActivity避免了布局与状态栏的“撕裂”效果
下图就是我所说的撕裂效果

SwipeBackXActivity的效果如微信

SwipeBackXActivity的补充参考自:DyncKathline/SwipeBackLayout: 沉浸式侧滑关闭Activity
最后附上我整理后的项目:BuYishi/SwipeBackLayout: An Android library that help you to build app with swipe back gesture.
侧滑关闭Activity的解决方案——SwipeBackLayout的更多相关文章
- 分分钟教你集成沉浸式侧滑关闭Activity
网上搜索侧滑关闭Activity,几乎没有系统状态栏跟随页面一起联动的,有明显的撕裂感,而这里则是状态栏跟随页面联动的,说来集成也是简单,等会你就知道了. 个人习惯,写博客前喜欢先截图 1.首先以项目 ...
- 随手一写就是一个侧滑关闭activity
刚忙完一段时间,今天刚清闲会,就把以前写的东西整理整理.于是冥冥中发现有些东西完全可以共享出来,毕竟那么常见,而且简单实用. 实现原因 其实侧滑关闭activity在网上也有大量的文章去介绍他,我也有 ...
- 【android】侧滑关闭activity
最近在使用IOS系统的时候,发现侧滑关闭很实用,因为单手就可以操作,不需要点击左上角的回退按钮.或者返回键了. 所以打算在android上实现这个技术. 需求: 1:IOS只能在屏幕边缘开始,往中间进 ...
- 【Android】12.2 利用Intent启动和关闭Activity
分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 Android应用程序中一般都有多个Activity,在Activity中,通过调用StartActivity方法 ...
- Activity详解一 配置、启动和关闭activity
先看效果图: Android为我们提供了四种应组件,分别为Activity.Service.Broadcast receivers和Content providers,这些组建也就是我们开发一个And ...
- 滑动关闭activity
// 手指上下滑动时的最小速度 private static final int YSPEED_MIN = 1000; // 手指向右滑动时的最小距离 private static final int ...
- 建立、配置和使用Activity——启动、关闭Activity
一个Android应用通常都会包含多个Activity,但只有一个Activity会作为程序的入口——当该Android应用运行时将会自启动并执行该Activity.至于应用中的其他Activity, ...
- jqueryeasyUI dialog 弹出窗口超出浏览器,导致不能关闭的bug解决方案
jqueryeasyUI dialog 弹出窗口超出浏览器,导致不能关闭的bug解决方案 2014年8月30日 3233次浏览 相信很多前端朋友都用过jqueryeasyUI,jqueryeasyUI ...
- 【Android-关闭所有Activity】关闭activity之前的所有activity,重启actibity
Android关闭activity之前的所有activity,重启actibity 直接关闭一个activity之前的所有Activity页面 解决方法:清理activity堆栈 Intent ine ...
随机推荐
- php 简单的工程模式 实现加法操作
class A{ protected $Num1; protected $Num2; public $result; public function getNum1(){ return $this-& ...
- java 接受带有中文的get请求文件下载时的问题
参数是接受到了 , debug的时候也能看的到 , 但是奇怪的是就是找不到文件 @ApiOperation(value = "文件下载/图片预览") @GetMapping(val ...
- JavaWeb学习篇之----容器Request详解
前篇说到了Response容器对象,这篇我们就来看一下Request容器对象,之前也说过了,这个两个容器对象是相对应的,每次用户请求服务器的时候web容器就会给创建这对容器对象,他们是共存亡的,当然R ...
- document.body / document.ducumentElement /等获取高度和宽度的区别
document.body / document.ducumentElement /等获取高度和宽度的区别 <!DOCTYPE html> <html> <head la ...
- D 语言学习感受
胃抽动!特想吐!不过,还是很佩服写这种语言的人,不是大拿,怎么可能开发一门语言!
- django中related_name的作用和用法
其实可以就理解为,一对多关系拿对象的解决 可以把引用理解为主从关系 主引用从,即一对多 , 注意外键字段是放在多的一端的,比如一个班级class 有很多同学 students,那么就在students ...
- JAVA泛型知识(一)
Java泛型知识(二)<? extends T>和<? super T> Java1.5泛型指南中文版(Java1.5 Generic Tutorial) 目 录 ...
- 《DSP using MATLAB》Problem 8.46
下雨了,大风降温,一地树叶,终于进入冬季了 代码: %% ----------------------------------------------------------------------- ...
- 往github上上传项目
点击start a project 新建 下面部分传送http://blog.csdn.net/s740556472/article/details/55000019 如图: 这里我们有一个步骤需要做 ...
- Dubbo 3.0 预览版解读,6到飞起~
, false).start(); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new St ...