网上搜索侧滑关闭Activity,几乎没有系统状态栏跟随页面一起联动的,有明显的撕裂感,而这里则是状态栏跟随页面联动的,说来集成也是简单,等会你就知道了。

个人习惯,写博客前喜欢先截图

1.首先以项目的形式导入到你的项目中

2.然后在你要侧滑的Activity集成SwipeBackActivity,注意只要集成就好的,其他的什么都不要你写,就能实现侧滑了

下面列出代码: Mainactivity.java

public class MainActivity extends AppCompatActivity {
private TextView textView; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.text);
} public void click(View view) {
if (view.getId() == R.id.button) {
startActivity(new Intent(MainActivity.this, SecondActivity.class));
} else {
startActivityForResult(new Intent(MainActivity.this, ThirdActivity.class), 1);
}
} @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String result = data.getStringExtra("result");
if (requestCode == 1 && resultCode == 0) {
textView.setText(result);
}
}
}

SecondActivity.java

public class SecondActivity extends SwipeBackActivity {
private ViewPager viewPager;
private int []imageIdArray;//图片资源的数组
private List<View> viewList;//图片资源的集合 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
viewPager = (ViewPager)findViewById(R.id.viewpager); setStatusBarColor(getResources().getColor(R.color.colorPrimary)); imageIdArray = new int[]{R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d};
viewList = new ArrayList<>();
//获取一个Layout参数,设置为全屏
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
//循环创建View并加入到集合中
int len = imageIdArray.length;
for (int i = 0;i<len;i++){
//new ImageView并设置全屏和图片资源
ImageView imageView = new ImageView(this);
imageView.setLayoutParams(params);
imageView.setBackgroundResource(imageIdArray[i]); //将ImageView加入到集合中
viewList.add(imageView);
}
viewPager.setAdapter(new ViewPagerAdapter(viewList));
}
}

ThirdActivity.java

public class ThirdActivity extends SwipeBackActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
} @Override
public void dothingBeforeFinish() {//这里是你要返回一些数据个启动的那个Activity,你可以在此做操作
super.dothingBeforeFinish();
Intent intent = new Intent();
intent.putExtra("result", "来自ThirdActivity返回的值");
setResult(0, intent);
}
}

代码是不是很简单,这样就轻易的实现了沉浸式侧滑了。至于侧滑的Activity状态栏为什么是灰色的,是因为我在SwipeBackActivity中写死了,你可以修改此颜色。通过 setStatusBarColor(getResources().getColor(R.color.colorPrimary)); 好了,在此附上github源码,喜欢的请start、fork。 https://github.com/DyncKathline/SwipeBackLayout

转载请注明出处,谢谢!

分分钟教你集成沉浸式侧滑关闭Activity的更多相关文章

  1. 侧滑关闭Activity的解决方案——SwipeBackLayout

    项目地址:ikew0ng/SwipeBackLayout: An Android library that help you to build app with swipe back gesture. ...

  2. 随手一写就是一个侧滑关闭activity

    刚忙完一段时间,今天刚清闲会,就把以前写的东西整理整理.于是冥冥中发现有些东西完全可以共享出来,毕竟那么常见,而且简单实用. 实现原因 其实侧滑关闭activity在网上也有大量的文章去介绍他,我也有 ...

  3. 【android】侧滑关闭activity

    最近在使用IOS系统的时候,发现侧滑关闭很实用,因为单手就可以操作,不需要点击左上角的回退按钮.或者返回键了. 所以打算在android上实现这个技术. 需求: 1:IOS只能在屏幕边缘开始,往中间进 ...

  4. Android中的沉浸式状态栏效果

    无意间了解到沉浸式状态栏,感觉贼拉的高大上,于是就是试着去了解一下,就有了这篇文章.下面就来了解一下啥叫沉浸式状态栏.传统的手机状态栏是呈现出黑色条状的,有的和手机主界面有很明显的区别.这一样就在一定 ...

  5. Android 中沉浸式状态栏实现

    Android 中沉浸式状态栏实现方式如下 计算状态栏高度及调用沉浸式状态栏的相关API方法 package com.example.status; import android.annotation ...

  6. Android状态栏微技巧,带你真正意义上的沉浸式

    记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解. 其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发 ...

  7. Android状态栏微技巧,带你真正理解沉浸式模式【转】

    感谢! 本文转自大佬郭霖:http://blog.csdn.net/guolin_blog/article/details/51763825 转载请注明出处:http://blog.csdn.net/ ...

  8. Android隐藏状态栏实现沉浸式体验

    转自: Android状态栏微技巧,带你真正理解沉浸式模式 什么叫沉浸式? 根据百度百科上的定义,沉浸式就是要给用户提供完全沉浸的体验,使用户有一种置身于虚拟世界之中的感觉. 那么对应到Android ...

  9. 实现Android K的伪沉浸式

    在Android 5.0之后引入了MD风格,从而状态栏沉浸也成为了一种设计习惯.而停留在之Android L之前的Android系统则不能直接实现沉浸式,这里就介绍一下如何实现Android K系列的 ...

随机推荐

  1. Cloud Insight 客户案例-晨芯时代科技有限公司

    在不断迭代的过程中,Cloud Insight 也很重视客户对产品的使用体验,这次我们拜访了晨芯时代,了解到他们在使用 Cloud Insight 过程中对产品的一些想法. 客户背景 晨芯时代是一家开 ...

  2. 使用VisualStudio2010创建C#应用程序

    打开VisualStudio2010,选择“文件”——“新建”——“项目”菜单命令.调出“新建项目”对话框.

  3. NAND FLASH的容量、特性、市场和应用

    NAND Flash的容量   一直到2006年,MLC芯片的容量每年都成倍数增长:由于NAND Flash的制程升级的挑战越来越大,所以NAND Flash之后的容量成倍增长所需要的时间也在不断增加 ...

  4. WIN32和Kernel)直接读写硬盘扇区

    第一篇写技术的文章哦,以前好少写文章,我的文字表达很差劲,大家不要笑哦.前几天仙剑4通关了,感觉好惆怅,什么都不想去做.今天看了一下书发现一篇比较好玩的文章,于是自己静静地实践一番.文章是<基于 ...

  5. 通过新的 Azure 媒体服务资源管理器工具管理媒体工作流

    Xavier Pouyat    Azure 媒体服务高级项目经理 几个月前,一家广播公司找到了我,希望我向他们提供一种图形界面工具,好让他们使用 Azure媒体服务来上传.管理资产并对资产进行编 ...

  6. 基础题:HDU 5122 K.Bro Sorting

    Matt's friend K.Bro is an ACMer.Yesterday, K.Bro learnt an algorithm: Bubble sort. Bubble sort will ...

  7. 进程与线程(二) java进程的内存模型

    从我出生那天起,我就知道我有个兄弟,他桀骜不驯,但实力强悍 ,人家都叫它C+++            ----java 上回说到了,C进程的内存分配,那么一个java运行过程也是一个进程,java内 ...

  8. (转载)利用burp suite截断上传拿shell

    burpsuite上传必须要有filepath这个参数 第一步:选择一个jpg后缀的马. 第二步:设置本地代理,burp的本地端口是8080 第三步:打开burp suite 按图操作就ok了. 第四 ...

  9. 南京Uber优步司机奖励政策(2月1日~2月7日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. engine中调整Element的上下显示顺序(遮盖)

    pGraphicsContainer.AddElement(pElement, 0); Engine中IGraphicsContainer类似于栈,加Element时,默认加到第一个,所以会将之前加的 ...