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,在清单文件里引用即可。
至此,侧滑退出的效果就可以实现啦,是不是很炫酷,有好的东西持续分享给大家,博客持续更新中。。。