说起SwipeBackLayout,我对它还是有一定怨念的。当时就希望能实现关闭当前Activity的效果,但完全搜不当相关的东西,最后好不容易搜到了这个SwipeBackLayout,觉得可以实现滑动关闭了,但用上后却出现了黑屏的问题,好在最后都解决了。这也说明了任何一个开源项目都是在不断完善的,完善的动力就是靠大家的提意见和热情,SwipeBackLayout作为中国的一款优秀开源项目值得让大家称赞!

项目地址:https://github.com/qmdx/SwipeBackLayout

一、让需要滑动的Activity基础自定义的style

这里就是为了解决滑动黑屏的问题

  1. <style name="KaleTheme" parent="AppBaseTheme">
  2. <!-- 解决activity切换时的黑屏问题 -->
  3. <item name="android:windowIsTranslucent">true</item>
  4. </style>

styles.xml中的全部文件:

  1. <resources>
  2.  
  3. <!--
  4. Base application theme, dependent on API level. This theme is replaced
  5. by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
  6. -->
  7. <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
  8. <!--
  9. Theme customizations available in newer API levels can go in
  10. res/values-vXX/styles.xml, while customizations related to
  11. backward-compatibility can go here.
  12. -->
  13. </style>
  14.  
  15. <!-- Application theme. -->
  16. <style name="AppTheme" parent="AppBaseTheme">
  17. <!-- All customizations that are NOT specific to a particular API-level can go here. -->
  18. </style>
  19.  
  20. <style name="KaleTheme" parent="AppBaseTheme">
  21. <!-- 解决activity切换时的黑屏问题 -->
  22. <item name="android:windowIsTranslucent">true</item>
  23. </style>
  24.  
  25. </resources>

我是直接用Application使用了这个样式,仅仅为了演示。

  1. <application
  2. android:allowBackup="true"
  3. android:icon="@drawable/ic_launcher"
  4. android:label="@string/app_name"
  5. android:theme="@style/KaleTheme" >

二、用Activity继承一个类

如果你是要兼容Actionbar那么就继承SwipeBackActionbarActivity,这个类是我自己改的,原来的lib中没有。如果不用兼容,那么直接用SwipeBackActivity即可。

三、在方法中找到SwipeBackLayout,并设置滑动的区域和方向

这个就是简单的设置,我直接贴代码了。

  1. package com.kale.swipbacklayouttest;
  2.  
  3. import me.imid.swipebacklayout.lib.SwipeBackLayout;
  4. import me.imid.swipebacklayout.lib.app.SwipeBackActionbarActivity;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.widget.Button;
  10.  
  11. /**
  12. * @author:Jack Tony
  13. * @tips :如果要兼容,那么继承SwipeBackActionbarActivity,否则继承SwipeBackActivity
  14. * @date :2014-10-31
  15. */
  16. public class MainActivity extends SwipeBackActionbarActivity {
  17.  
  18. private SwipeBackLayout mSwipeBackLayout;
  19.  
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_main);
  24.  
  25. mSwipeBackLayout = getSwipeBackLayout();
  26. //设置可以滑动的区域,推荐用屏幕像素的一半来指定
  27. mSwipeBackLayout.setEdgeSize(200);
  28. //设定滑动关闭的方向,SwipeBackLayout.EDGE_ALL表示向下、左、右滑动均可。EDGE_LEFT,EDGE_RIGHT,EDGE_BOTTOM
  29. mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_ALL);
  30.  
  31. Button btn = (Button)findViewById(R.id.open_button);
  32. btn.setOnClickListener(new OnClickListener() {
  33.  
  34. @Override
  35. public void onClick(View v) {
  36. // TODO 自动生成的方法存根
  37. startActivity(new Intent(MainActivity.this,MainActivity.class));
  38. }
  39. });
  40. }
  41.  
  42. }

上面还添加了一个button,是用来开启新的Activity,主要是便于测试的。好啦,你看使用方式十分简单吧,下面是源码:

源码下载:http://download.csdn.net/detail/shark0017/8104885

用SwipeBackLayout实现滑动关闭当前Activity的更多相关文章

  1. Android退出时关闭所有Activity的方法

    Android退出时,有的Activity可能没有被关闭.为了在Android退出时关闭所有的Activity,设计了以下的类: //关闭Activity的类 public class CloseAc ...

  2. 滑动关闭activity

    // 手指上下滑动时的最小速度 private static final int YSPEED_MIN = 1000; // 手指向右滑动时的最小距离 private static final int ...

  3. Android中滑动关闭Activity

    继承SwipeBackActivity即可实现向右滑动删除Activity效果 点击下载所需文件

  4. Android 使用SwipeBackLayout实现滑动返回上一级页面——实战来袭

    我们知道.APP在设计上习惯性的把返回button放在屏幕的左上角,那么,在非常多时候(尤其是大屏幕手机),操作改返回button,就会有诸多不便了.为了更加方便实现"返回"功能. ...

  5. 安全关闭多Activity的Application

    1.发送广播给每一个打开的Activity. 2.采用startActivityForResult()方法递归关闭. 3.使用EventBus框架的监听者模式,关闭时触发监听事件.

  6. Android 中 关闭部分 Activity 的方法总结

    每一个activity都有自己的生命周期,被打开了最终就要被关闭. 四种结束当前的activity方法 但如果已经启动了四个Activity:A,B,C和D, 在D Activity里,想再启动一个A ...

  7. 在Adapter中如何关闭当前Activity

    很多时候我们需要在点击adapter条目的时候关闭当前界面,把所点击条目的信息带到前一个界面,同时关闭当前界面. 这个 时候就需要在adapter对某一个点击事件做处理. 代码如下: holder.l ...

  8. Android学习之可滑动当前的Activity视图看见上一个活动的视图

    先看一下我的效果图吧: 好大的图啊!!! 百度音乐由一个很酷的功能,当前的UI可以滑动,然后看见上一个活动的UI,当时顿时觉得百度的牛人好多啊,能将如此前沿的技术应用到app上.当然如果你熟悉了And ...

  9. 【android】实现手指滑动来切换activity(转)

    http://code.eoe.cn/115 1.jpg外部引用 原始文档 MainActivity.java外部引用 原始文档 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

随机推荐

  1. 使用nginx统一代理dashboard,grafana,Prometheus二级目录访问

    k8s上的这些管理工具必不可少,可以统一在nginx下的二级目录下. ingress是好,但我们不方便使用内部域名,相信么...:) 一,prometheus改造 在prometheus的deploy ...

  2. 【Java】 遍历HashMap

    1.遍历键值对 使用map.entrySet(),注意foreach语句中的类型为Map.Entry<K, V> 2.遍历Key 使用map.keySet() 3.遍历Value 使用ma ...

  3. ADNI以及study design简介

    相关名词: MCI:轻度认知功能障碍 EMCI:早期认知障碍 MCI:轻度认知障碍 LMCI:晚期认知障碍 CN:认知正常的志愿者 DTI:doppler tissue imaging,多普勒组织显像 ...

  4. C#并行编程(5):需要知道的异步

    异步与并行的联系 大家知道"并行"是利用CPU的多个核心或者多个CPU同时执行不同的任务,我们不关心这些任务之间的依赖关系. 但是在我们实际的业务中,很多任务之间是相互影响的,比如 ...

  5. 前后端分离之JWT用户认证(转)

    在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时它就把刚刚的资料忘了.于是我 ...

  6. Python中的编码问题(encoding与decode、str与bytes)

    1 引言 在文件读写及字符操作时,我们经常会出现下面这几种错误: TypeError: write() argument must be str, not bytes AttributeError: ...

  7. 纯css滚动视差

    1.何为滚动视差 视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验. 作为网页设计的热点趋势,越来越多的网站应用了这项技术.效 ...

  8. UI控件(ios)---UIImageView

    在实现网络异步存储中,突然发现对控件UIImageView有点生疏了,在这里复习一下. UIImageView,顾名思义是用来放置image的. 1.初始化UIImageView   UIImageV ...

  9. 括弧匹配检验(check.cpp)

    [问题描述]        假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或 ( ( ) ) )均为错 ...

  10. [USACO08NOV]Time Management

    [USACO08NOV]Time Management 题目大意: 有\(n(n\le1000)\)个任务,同一时间只能进行一个任务.每个任务有一个进行时间\(t_i\)和一个截止时间\(s_i\), ...