首先,activity的右滑返回:
2.写一个 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的范围,可以调用这个方法
}
}
让其他activity继承BaseActivity即可,这样就有右滑返回的功能了。
最后你还需要在清单文件中,AppTheme 主题上,加上这个属性,要不然activity的背景应该是黑色的,很难看:
(我没加这个属性运行起来也没什么影响,不过看网上都说要加)
<item name="android:windowIsTranslucent">true</item>
按系统自带返回键也有动画效果:
/**
* 当按下返回键时
*/
@Override
public void onBackPressed() {
scrollToFinishActivity();//左滑退出activity
}
不想让activity右滑返回,在onCreate()里调用
setSwipeBackEnable(false);
<item name="android:windowIsTranslucent">true</item>
按系统自带返回键也有动画效果:
/**
* 当按下返回键时
*/
@Override
public void onBackPressed() {
scrollToFinishActivity();//左滑退出activity
}
不想让activity右滑返回,在onCreate()里调用
setSwipeBackEnable(false);
FragmentActivity的右滑返回:
1.下载库文件并导入module(还是上面那个库文件);
2.写一个BaseFragmentActivity继承FragmentActivity,并实现SwipeBackActivityBase
public class BaseFragmentActivity extends FragmentActivity implements SwipeBackActivityBase {
private SwipeBackActivityHelper mHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHelper = new SwipeBackActivityHelper(this);
mHelper.onActivityCreate();
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mHelper.onPostCreate();
}
@Override
public View findViewById(int id) {
View v = super.findViewById(id);
if (v == null && mHelper != null)
return mHelper.findViewById(id);
return v;
}
@Override
public SwipeBackLayout getSwipeBackLayout() {
return mHelper.getSwipeBackLayout();
}
@Override
public void setSwipeBackEnable(boolean enable) {
getSwipeBackLayout().setEnableGesture(enable);
}
@Override
public void scrollToFinishActivity() {
Utils.convertActivityToTranslucent(this);
getSwipeBackLayout().scrollToFinishActivity();
}
}
让其他需要继承FragmentActivity的继承BaseFragmentActivity即可
其他的跟上面的一样