Android 快速实现右滑退出效果

快速实现右滑退出

本人使用的是GitHub上的开源库 SwipeBack

开源库地址 https://github.com/ikew0ng/SwipeBackLayout


集成右滑退出效果首先需要将库引用到我们的项目中,这里通过gradle的方式导入

compile ‘me.imid.swipebacklayout.lib:library:1.1.0’

引入项目之后,我们让我们的基类继承 SwipeBackActivity,之后配置如下

public abstract class BaseActivity extends SwipeBackActivity  {

   /**
     * 右滑退出
     */
private SwipeBackLayout mSwipeBackLayout;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(getResViewId());
        //初始化右滑退出
        initSwipeBack();
    }
     /**
     * 初始化右滑退出
     */
    private void initSwipeBack() {
        // 可以调用该方法,设置是否允许滑动退出
        setSwipeBackEnable(true);
        mSwipeBackLayout = getSwipeBackLayout();
        // 设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM
        mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
        // 滑动退出的效果只能从边界滑动才有效果,如果要扩大touch的范围,可以调用这个方法
        // mSwipeBackLayout.setEdgeSize(200);
    }

    /**
     * 关闭右滑退出
     */
    protected void closeSwipeBack() {
        setSwipeBackEnable(false);
    }

}

现在只需在不需要使用右滑退出的activity(比如MainActivity)中调用 closeSwipeBack() 方法就可以随意使用啦,跑起来后我们发现滑动效果有了,但是上一层activity是黑色的,如下图

要解决这个问题,我们就需要设置背景透明,我们需要在 style文件中的AppTheme中加一条属性


   <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <!--加上这条属性,就能解决滑动关闭时,页面黑屏的问题 -->
        <item name="android:windowIsTranslucent">true</item>


    </style>

将这个Style在AndroidManifest里设置到 Application 中

   <application
          ...
          ...
        android:theme="@style/AppTheme">

到这里,就可以随意玩耍啦,去耍吧。

PS: 因windowIsTranslucent属性导致的debug,可以看我的另一篇博客:
https://blog.csdn.net/w13576267399/article/details/82416201

猜你喜欢

转载自blog.csdn.net/w13576267399/article/details/77238251