介绍

在知乎客户端上看到了这种效果,左滑Activity可以返回到上一界面,非常适合单手操作。

找了很久,终于在github上看到了SwipeBackLayout这个开源项目,地址:

https://github.com/ikew0ng/SwipeBackLayout

实现

需要使用到的类:

SwipeBackActivity.javaSwipeBackLayout.javaViewDragHelper.java

使当前的Activity继承SwipeBackActivity

public class BaseActivity extends SwipeBackActivity {    private SwipeBackLayout mSwipeBackLayout;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        mSwipeBackLayout = getSwipeBackLayout();        //设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM        mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);    }}

在使用的主题中添加下面的属性,否则滑动时activity的下层是黑色的

true

当使用BaseActivity时,为了使首页不会滑动删除,只需如下设置即可

setSwipeBackEnable(false); //禁止滑动删除
  • 另外,这个滑动删除的效果只能从边界滑动才有效果,如果要扩大touch的范围,可以调用
mSwipeBackLayout.setEdgeSize(int size);

但是上面这个方法不太好用,效果不明显,推荐修改ViewDragHelper.java这个类源码中的getEdgeTouched(int x, int y)方法,如下

private int getEdgeTouched(int x, int y) {        int result = 0;        result = EDGE_LEFT;//这样每次都是全屏左滑删除        //解决只有点击屏幕左边才有响应的问题        /*if (x < mParentView.getLeft() + mEdgeSize)            result = EDGE_LEFT;        if (y < mParentView.getTop() + mEdgeSize)            result = EDGE_TOP;        if (x > mParentView.getRight() - mEdgeSize)            result = EDGE_RIGHT;        if (y > mParentView.getBottom() - mEdgeSize)            result = EDGE_BOTTOM;*/        return result;    }

经过上面步骤,应该就能如期实现效果了。

下面放上我的Demo截图:

这是Demo源码
开发工具:Android Studio

转载注明本文地址:http://www.ablanxue.com/shtml/201511/28663_1.shtml

更多相关文章

  1. Android(安卓)"多方向"抽屉
  2. android通话记录的查询与删除
  3. android通过USB的MTP模式下,禁止用户在根目录有任何操作(重命名 删
  4. ScrollView拉到尽头时出现阴影的解决方法
  5. Android(安卓)Animation初步
  6. Android第四期 - 单侧滑动效果
  7. android handler.removeCallbacksAndMessages(null)的使用
  8. Android仿QQ消息列表ListView滑动删除效果
  9. android 各类开源项目整理 包括 个性化控件 工具库 完整优秀项目

随机推荐

  1. Android(安卓)NDK翻译与解析(一)
  2. Android文字居中
  3. 【Android】应用获取用户最高权限
  4. Android二值化
  5. Android(安卓)- AndroidManifest节点
  6. android发布过程
  7. android:launchMode与android:taskAffini
  8. Android(安卓)ndk-build编译jni动态库
  9. 初学Android,图形图像之Matrix(二十九)
  10. 你真的懂了Android的生命周期了吗,带你重