android 滑动返回,Android 滑动返回库 SwipeBackLayout 的使用

Android 滑动返回库 SwipeBackLayout 的使用

SwipeBackLayout 的配置

首先在 Android Studio 的app 的 build.gradle 中进行引用:

compile 'me.imid.swipebacklayout.lib:library:1.0.0'

然后只要在需要滑动的 activity 中进行继承与 SwipeBackActivity ,如下:

public class BaseActivity extends SwipeBackActivity {

private SwipeBackLayout mSwipeBackLayout;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mSwipeBackLayout = getSwipeBackLayout();

//设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM

mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);//设置滑动方向

//mSwipeBackLayout.setEdgeSize(200);//滑动删除的效果只能从边界滑动才有效果,如果要扩大touch的范围,可以调用这个方法

}

}

如果按照上面的方式继承,那么可能所有的 activity 都会出现滑动。如果我们不想在某些 activity 中实现滑动应该怎么做?比如主界面的 MainActivity.java 中。那就需要下面的都方法。

setSwipeBackEnable(false); //主 activity 可以调用该方法,禁止滑动删除 为 true 时可以滑动,为 false 时则不可以滑动。

滑动退出可以在 activity 中做如下设置:

@Override

public void onBackPressed() {

scrollToFinishActivity();//左滑退出activity

}

SwipeBackLayout 存在的坑:

首项:SwipeBackActivity 继承的是 FragmentActivity

public class SwipeBackActivity extends FragmentActivity implements SwipeBackActivityBase {

private SwipeBackActivityHelper mHelper;

}

如果这样的话 AppCompatActivity 中的某些特性就不可以使用。如果想要使用 AppCompatActivity ,需要自己将库中的 FragmentActivity 改成 AppCompatActivity 。

其次:

如果按照上面的 方式配置,你会发现, 滑动的时候,会出现一片黑色 。 那么怎么使得滑动时不时黑色呢? 就需要在 application 的主题中设置下面属性:

true

就是将属性设置为透明,当然还有另外一种方法,就是将滑动时的背景设置为一张图片。 如下:

@mipmap/icon

不过还是建议设置为透明:

3,当设置了上面的 true 为true 以后,在 Android 5.0以下的系统中,你返回的时候,会出现先返回桌面,再放回上一个界面的情况,真针对这种情况,需要在 MainActivity 中重新设置一个主题,使得 返回时上面一个 activity 不是透明。

如下:

android:name=".ui.activity.MainActivity"

android:windowSoftInputMode="adjustNothing"

android:theme="@style/AppThemeNotTranslucent"/>

style.xml

false

4.最严重的一个坑:

设置了true 会导致 Activity 的生命周期不走 onStop(), 这样会导致 activity 无法被回收,如果程序中大量的 activity 都使用了滑动返回,那么就会出现 卡顿的现象。针对这个问题,暂时没有找到合适的解决办法。 最大的遗憾是: SwipeBackLayout 这个库的作者好像已经不维护更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值