用SwipeBackLayout实现滑动关闭当前Activity
说起SwipeBackLayout,我对它还是有一定怨念的。当时就希望能实现关闭当前Activity的效果,但完全搜不当相关的东西,最后好不容易搜到了这个SwipeBackLayout,觉得可以实现滑动关闭了,但用上后却出现了黑屏的问题,好在最后都解决了。这也说明了任何一个开源项目都是在不断完善的,完善的动力就是靠大家的提意见和热情,SwipeBackLayout作为中国的一款优秀开源项目值得让大家称赞!
项目地址:https://github.com/qmdx/SwipeBackLayout
一、让需要滑动的Activity基础自定义的style
这里就是为了解决滑动黑屏的问题
<style name="KaleTheme" parent="AppBaseTheme">
<!-- 解决activity切换时的黑屏问题 -->
<item name="android:windowIsTranslucent">true</item>
</style>
styles.xml中的全部文件:
<resources> <!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style> <!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style> <style name="KaleTheme" parent="AppBaseTheme">
<!-- 解决activity切换时的黑屏问题 -->
<item name="android:windowIsTranslucent">true</item>
</style> </resources>
我是直接用Application使用了这个样式,仅仅为了演示。
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/KaleTheme" >
二、用Activity继承一个类
如果你是要兼容Actionbar那么就继承SwipeBackActionbarActivity,这个类是我自己改的,原来的lib中没有。如果不用兼容,那么直接用SwipeBackActivity即可。
三、在方法中找到SwipeBackLayout,并设置滑动的区域和方向
这个就是简单的设置,我直接贴代码了。
package com.kale.swipbacklayouttest; import me.imid.swipebacklayout.lib.SwipeBackLayout;
import me.imid.swipebacklayout.lib.app.SwipeBackActionbarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; /**
* @author:Jack Tony
* @tips :如果要兼容,那么继承SwipeBackActionbarActivity,否则继承SwipeBackActivity
* @date :2014-10-31
*/
public class MainActivity extends SwipeBackActionbarActivity { private SwipeBackLayout mSwipeBackLayout; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); mSwipeBackLayout = getSwipeBackLayout();
//设置可以滑动的区域,推荐用屏幕像素的一半来指定
mSwipeBackLayout.setEdgeSize(200);
//设定滑动关闭的方向,SwipeBackLayout.EDGE_ALL表示向下、左、右滑动均可。EDGE_LEFT,EDGE_RIGHT,EDGE_BOTTOM
mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_ALL); Button btn = (Button)findViewById(R.id.open_button);
btn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO 自动生成的方法存根
startActivity(new Intent(MainActivity.this,MainActivity.class));
}
});
} }
上面还添加了一个button,是用来开启新的Activity,主要是便于测试的。好啦,你看使用方式十分简单吧,下面是源码:
源码下载:http://download.csdn.net/detail/shark0017/8104885
用SwipeBackLayout实现滑动关闭当前Activity的更多相关文章
- Android退出时关闭所有Activity的方法
Android退出时,有的Activity可能没有被关闭.为了在Android退出时关闭所有的Activity,设计了以下的类: //关闭Activity的类 public class CloseAc ...
- 滑动关闭activity
// 手指上下滑动时的最小速度 private static final int YSPEED_MIN = 1000; // 手指向右滑动时的最小距离 private static final int ...
- Android中滑动关闭Activity
继承SwipeBackActivity即可实现向右滑动删除Activity效果 点击下载所需文件
- Android 使用SwipeBackLayout实现滑动返回上一级页面——实战来袭
我们知道.APP在设计上习惯性的把返回button放在屏幕的左上角,那么,在非常多时候(尤其是大屏幕手机),操作改返回button,就会有诸多不便了.为了更加方便实现"返回"功能. ...
- 安全关闭多Activity的Application
1.发送广播给每一个打开的Activity. 2.采用startActivityForResult()方法递归关闭. 3.使用EventBus框架的监听者模式,关闭时触发监听事件.
- Android 中 关闭部分 Activity 的方法总结
每一个activity都有自己的生命周期,被打开了最终就要被关闭. 四种结束当前的activity方法 但如果已经启动了四个Activity:A,B,C和D, 在D Activity里,想再启动一个A ...
- 在Adapter中如何关闭当前Activity
很多时候我们需要在点击adapter条目的时候关闭当前界面,把所点击条目的信息带到前一个界面,同时关闭当前界面. 这个 时候就需要在adapter对某一个点击事件做处理. 代码如下: holder.l ...
- Android学习之可滑动当前的Activity视图看见上一个活动的视图
先看一下我的效果图吧: 好大的图啊!!! 百度音乐由一个很酷的功能,当前的UI可以滑动,然后看见上一个活动的UI,当时顿时觉得百度的牛人好多啊,能将如此前沿的技术应用到app上.当然如果你熟悉了And ...
- 【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 ...
随机推荐
- Django RESTful Web Services, 此书学DRF不错
全名为<Django RESTful Web Services: The easiest way to build Python RESTful APIs and web services wi ...
- 使用nginx统一代理dashboard,grafana,Prometheus二级目录访问
k8s上的这些管理工具必不可少,可以统一在nginx下的二级目录下. ingress是好,但我们不方便使用内部域名,相信么...:) 一,prometheus改造 在prometheus的deploy ...
- WebAPI性能优化
WebAPI性能优化之压缩解压 有时候为了提升WebAPI的性能,减少响应时间,我们会使用压缩和解压,而现在大多数客户端浏览器都提供了内置的解压支持.在WebAPI请求的资源越大时,使用压缩对性能提升 ...
- 4,EasyNetQ-Request Response
EasyNetQ还支持请求/响应消息传递模式. 这使得客户端/服务器应用程序变得容易,客户机/服务器应用程序在客户端向服务器发出请求,然后处理请求并返回响应. 与传统的RPC机制不同,EasyNetQ ...
- Android View事件分发-从源码分析
View事件分发-从源码分析 学习自 <Android开发艺术探索> https://blog.csdn.net/qian520ao/article/details/78555397?lo ...
- 表达式树(Expression Tree)
饮水思源 本文并非原创而是下面网址的一个学习笔记 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/e ...
- ubuntu 配置mycat
https://blog.csdn.net/leisure_life/article/details/78611594 这篇博主写的非常好,我找了很久 都解决不了,最后按照他的步骤解决了问题. 其中有 ...
- Android activity之间数据传递和共享的方式之Application
1.基于消息的通信机制 Intent ---bundle ,extra 数据类型有限,比如遇到不可序列化的数据Bitmap,InputStream,或者LinkedList链表等等数据类型就不太好用 ...
- BZOJ4280 : [ONTAK2015]Stumilowy sad
线段树每个区间维护上下界以及要整体增加的标记即可,时间复杂度$O(m\log n)$. #include<cstdio> #define inf 1500000000 int n,m,op ...
- Go内置库模块 flag
import "flag" flag包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个set集合.每条都有各自的状态参数. 在使用flag时正常流程: 1. ...