android 仿ios右滑退出当前activity

1.概述

     iPhone的用户在使用APP的时候,打开很多页面想关闭的时候只需要在屏幕的左侧向右滑动即可退出当前页面,这是iPhone没有返回键的原因。但是这个效果很炫酷呀,能应用在Android上不是更好吗,今天就来讲一个这个功能的实现,不深究代码,只讲使用。

先上效果图吧:



2.实现过程

添加依赖 compile ‘me.imid.swipebacklayout.lib:library:1.0.0’ 用的是第三方的库

先写一个 BaseActivity 继承 SwipeBackActivity:

public class BaseActivity extends SwipeBackActivity {
    private SwipeBackLayout mSwipeBackLayout;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mSwipeBackLayout = getSwipeBackLayout();
        //设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM
        mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
        mSwipeBackLayout.setEdgeSize(200);//滑动删除的效果只能从边界滑动才有效果,如果要扩大touch的范围,可以调用这个方法
    }
}
 

通过setEdgeTrackingEnabled方法设置从什么方向滑动退出

通过setEdgeSize方法设置滑动退出的边界范围

然后,下面依次是:MainActivity ,SecondActivity ,ThreeActivity 分别继承自 BaseActivity 。 
方法的调用都添加了注释,就不在多说啦。

public class MainActivity extends BaseActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setSwipeBackEnable(false); //主 activity 可以调用该方法,禁用滑动退出


        findViewById(R.id.btn_startSecondActivity).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, SecondActivity.class));
            }
        });
    }
}

public class SecondActivity extends BaseActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        findViewById(R.id.btn_startThirdActivity).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(SecondActivity.this, ThirdActivity.class));
            }
        });
    }

    /**
     * 当按下返回键时
     */
    @Override
    public void onBackPressed() {
        scrollToFinishActivity();//左滑退出activity
    }
}

public class ThirdActivity extends BaseActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_third);
    }

    /**
     * 当按下返回键时
     */
    @Override
    public void onBackPressed() {
        scrollToFinishActivity();//左滑退出activity
    }
}

最最重要的来了,最重要的是把需要侧滑退出的activity在清单文件里设置theme为透明样式,要不侧滑的时候底部是黑色,特别的难看。

<style name="NoTitleTranslucentTheme" parent="AppTheme">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsTranslucent">true</item>
    </style>
新建一个style,在清单文件里引用即可。

至此,侧滑退出的效果就可以实现啦,是不是很炫酷,有好的东西持续分享给大家,博客持续更新中。。。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值